# Generated from recipes/argo-cd/argo-workflows/1.0.14/variants/default/variant.yaml.
# These are the exact CRDs named by this base variant's recorded target facts.
# Apply them before the rendered workload objects; do not edit this generated copy.
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  name: clusterworkflowtemplates.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: ClusterWorkflowTemplate
    listKind: ClusterWorkflowTemplateList
    plural: clusterworkflowtemplates
    shortNames:
    - clusterwftmpl
    - cwft
    singular: clusterworkflowtemplate
  scope: Cluster
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: ClusterWorkflowTemplate is the definition of a workflow template resource in cluster scope
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object.

              Servers should convert recognized schemas to the latest internal value, and

              may reject unrecognized values.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents.

              Servers may infer this from the endpoint the client submits requests to.

              Cannot be updated.

              In CamelCase.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: WorkflowSpec is the specification of a Workflow.
            properties:
              activeDeadlineSeconds:
                description: 'Optional duration in seconds relative to the workflow start time which the workflow is

                  allowed to run before the controller terminates the workflow. A value of zero is used to

                  terminate a Running workflow'
                format: int64
                type: integer
              affinity:
                description: 'Affinity sets the scheduling constraints for all pods in the workflow.

                  Can be overridden by an affinity specified in the template'
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node matches the corresponding matchExpressions; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: 'An empty preferred scheduling term matches all objects with implicit weight 0

                            (i.e. it''s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).'
                          properties:
                            preference:
                              description: A node selector term, associated with the corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements by node's labels.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements by node's fields.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to an update), the system

                          may or may not try to eventually evict the pod from its node.'
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms. The terms are ORed.
                            items:
                              description: 'A null or empty node selector term matches no objects. The requirements of

                                them are ANDed.

                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.'
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements by node's labels.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements by node's fields.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: 'A label query over a set of resources, in this case pods.

                                    If it''s null, this PodAffinityTerm matches with no Pods.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                    Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                    Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  description: 'A label query over the set of namespaces that the term applies to.

                                    The term is applied to the union of the namespaces selected by this field

                                    and the ones listed in the namespaces field.

                                    null selector and null or empty namespaces list means "this pod''s namespace".

                                    An empty selector ({}) matches all namespaces.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: 'namespaces specifies a static list of namespace names that the term applies to.

                                    The term is applied to the union of the namespaces listed in this field

                                    and the ones selected by namespaceSelector.

                                    null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                    the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                    whose value of the label with key topologyKey matches that of any node on which any of the

                                    selected pods is running.

                                    Empty topologyKey is not allowed.'
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: 'weight associated with matching the corresponding podAffinityTerm,

                                in the range 1-100.'
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to a pod label update), the

                          system may or may not try to eventually evict the pod from its node.

                          When there are multiple elements, the lists of nodes corresponding to each

                          podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                        items:
                          description: 'Defines a set of pods (namely those matching the labelSelector

                            relative to the given namespace(s)) that this pod should be

                            co-located (affinity) or not co-located (anti-affinity) with,

                            where co-located is defined as running on a node whose value of

                            the label with key <topologyKey> matches that of any node on which

                            a pod of the set of pods is running'
                          properties:
                            labelSelector:
                              description: 'A label query over a set of resources, in this case pods.

                                If it''s null, this PodAffinityTerm matches with no Pods.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            matchLabelKeys:
                              description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            mismatchLabelKeys:
                              description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            namespaceSelector:
                              description: 'A label query over the set of namespaces that the term applies to.

                                The term is applied to the union of the namespaces selected by this field

                                and the ones listed in the namespaces field.

                                null selector and null or empty namespaces list means "this pod''s namespace".

                                An empty selector ({}) matches all namespaces.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            namespaces:
                              description: 'namespaces specifies a static list of namespace names that the term applies to.

                                The term is applied to the union of the namespaces listed in this field

                                and the ones selected by namespaceSelector.

                                null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            topologyKey:
                              description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                whose value of the label with key topologyKey matches that of any node on which any of the

                                selected pods is running.

                                Empty topologyKey is not allowed.'
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the anti-affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling anti-affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: 'A label query over a set of resources, in this case pods.

                                    If it''s null, this PodAffinityTerm matches with no Pods.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                    Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                    Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  description: 'A label query over the set of namespaces that the term applies to.

                                    The term is applied to the union of the namespaces selected by this field

                                    and the ones listed in the namespaces field.

                                    null selector and null or empty namespaces list means "this pod''s namespace".

                                    An empty selector ({}) matches all namespaces.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: 'namespaces specifies a static list of namespace names that the term applies to.

                                    The term is applied to the union of the namespaces listed in this field

                                    and the ones selected by namespaceSelector.

                                    null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                    the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                    whose value of the label with key topologyKey matches that of any node on which any of the

                                    selected pods is running.

                                    Empty topologyKey is not allowed.'
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: 'weight associated with matching the corresponding podAffinityTerm,

                                in the range 1-100.'
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the anti-affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the anti-affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to a pod label update), the

                          system may or may not try to eventually evict the pod from its node.

                          When there are multiple elements, the lists of nodes corresponding to each

                          podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                        items:
                          description: 'Defines a set of pods (namely those matching the labelSelector

                            relative to the given namespace(s)) that this pod should be

                            co-located (affinity) or not co-located (anti-affinity) with,

                            where co-located is defined as running on a node whose value of

                            the label with key <topologyKey> matches that of any node on which

                            a pod of the set of pods is running'
                          properties:
                            labelSelector:
                              description: 'A label query over a set of resources, in this case pods.

                                If it''s null, this PodAffinityTerm matches with no Pods.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            matchLabelKeys:
                              description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            mismatchLabelKeys:
                              description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            namespaceSelector:
                              description: 'A label query over the set of namespaces that the term applies to.

                                The term is applied to the union of the namespaces selected by this field

                                and the ones listed in the namespaces field.

                                null selector and null or empty namespaces list means "this pod''s namespace".

                                An empty selector ({}) matches all namespaces.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            namespaces:
                              description: 'namespaces specifies a static list of namespace names that the term applies to.

                                The term is applied to the union of the namespaces listed in this field

                                and the ones selected by namespaceSelector.

                                null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            topologyKey:
                              description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                whose value of the label with key topologyKey matches that of any node on which any of the

                                selected pods is running.

                                Empty topologyKey is not allowed.'
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                type: object
              archiveLogs:
                description: ArchiveLogs indicates if the container logs should be archived
                type: boolean
              arguments:
                description: 'Arguments contain the parameters and artifacts sent to the workflow entrypoint

                  Parameters are referencable globally using the ''workflow'' variable prefix.

                  e.g. {{workflow.parameters.myparam}}'
                properties:
                  artifacts:
                    description: Artifacts is the list of artifacts to pass to the template or workflow
                    items:
                      description: Artifact indicates an artifact to place at a specified path
                      properties:
                        archive:
                          description: Archive controls how the artifact will be saved to the artifact repository.
                          properties:
                            none:
                              description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                save/load the directory appropriately.'
                              type: object
                            tar:
                              description: TarStrategy will tar and gzip the file or directory when saving
                              properties:
                                compressionLevel:
                                  description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                    Defaults to gzip.DefaultCompression.'
                                  format: int32
                                  type: integer
                              type: object
                            zip:
                              description: ZipStrategy will unzip zipped input artifacts
                              type: object
                          type: object
                        archiveLogs:
                          description: ArchiveLogs indicates if the container logs should be archived
                          type: boolean
                        artifactGC:
                          description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                          properties:
                            podMetadata:
                              description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            serviceAccountName:
                              description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                              type: string
                            strategy:
                              description: Strategy is the strategy to use.
                              enum:
                              - ''
                              - OnWorkflowCompletion
                              - OnWorkflowDeletion
                              - Never
                              type: string
                          type: object
                        artifactory:
                          description: Artifactory contains artifactory artifact location details
                          properties:
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              description: URL of the artifact
                              type: string
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          description: Azure contains Azure Storage artifact location details
                          properties:
                            accountKeySecret:
                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                              type: string
                            container:
                              description: Container is the container where resources will be stored
                              type: string
                            endpoint:
                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        deleted:
                          description: Has this been deleted?
                          type: boolean
                        from:
                          description: From allows an artifact to reference an artifact from a previous step
                          type: string
                        fromExpression:
                          description: FromExpression, if defined, is evaluated to specify the value for the artifact
                          type: string
                        gcs:
                          description: GCS contains GCS artifact location details
                          properties:
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            serviceAccountKeySecret:
                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          description: Git contains git artifact location details
                          properties:
                            branch:
                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                              type: string
                            depth:
                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                number of commits from the branch tip'
                              format: int64
                              type: integer
                            disableSubmodules:
                              description: DisableSubmodules disables submodules during git clone
                              type: boolean
                            fetch:
                              description: Fetch specifies a number of refs that should be fetched before checkout
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                              type: boolean
                            insecureSkipTLS:
                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                              type: boolean
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              description: Repo is the git repository
                              type: string
                            revision:
                              description: Revision is the git commit, tag, branch to checkout
                              type: string
                            singleBranch:
                              description: SingleBranch enables single branch clone, using the `branch` parameter
                              type: boolean
                            sshPrivateKeySecret:
                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        globalName:
                          description: 'GlobalName exports an output artifact to the global scope, making it available as

                            ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                          type: string
                        hdfs:
                          description: HDFS contains HDFS artifact location details
                          properties:
                            addresses:
                              description: Addresses is accessible addresses of HDFS name nodes
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                              type: string
                            force:
                              description: Force copies a file forcibly even if it exists
                              type: boolean
                            hdfsUser:
                              description: 'HDFSUser is the user to access HDFS file system.

                                It is ignored if either ccache or keytab is used.'
                              type: string
                            krbCCacheSecret:
                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                It must be set if either ccache or keytab is used.'
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            krbServicePrincipalName:
                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                It must be set if either ccache or keytab is used.'
                              type: string
                            krbUsername:
                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            path:
                              description: Path is a file path in HDFS
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          description: HTTP contains HTTP artifact location details
                          properties:
                            auth:
                              description: Auth contains information for client authentication
                              properties:
                                basicAuth:
                                  description: BasicAuth describes the secret selectors required for basic authentication
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                  properties:
                                    clientCertSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                  properties:
                                    clientIDSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                        properties:
                                          key:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                              items:
                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                properties:
                                  name:
                                    description: Name is the header name
                                    type: string
                                  value:
                                    description: Value is the literal value to use for the header
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              description: URL of the artifact
                              type: string
                          required:
                          - url
                          type: object
                        mode:
                          description: 'mode bits to use on this file, must be a value between 0 and 0777.

                            Set when loading input artifacts. It is recommended to set the mode value

                            to ensure the artifact has the expected permissions in your container.'
                          format: int32
                          maximum: 511
                          minimum: 0
                          type: integer
                        name:
                          description: name of the artifact. must be unique within a template's inputs/outputs.
                          pattern: ^[-a-zA-Z0-9_{}.]+$
                          type: string
                        optional:
                          description: Make Artifacts optional, if Artifacts doesn't generate or exist
                          type: boolean
                        oss:
                          description: OSS contains OSS artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                              type: boolean
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            lifecycleRule:
                              description: LifecycleRule specifies how to manage bucket's lifecycle
                              properties:
                                markDeletionAfterDays:
                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - key
                          type: object
                        path:
                          description: Path is the container path to the artifact
                          type: string
                        plugin:
                          description: Plugin contains plugin artifact location details
                          properties:
                            configuration:
                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                              type: string
                            connectionTimeoutSeconds:
                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                              format: int32
                              type: integer
                            key:
                              description: Key is the path in the artifact repository where the artifact resides
                              type: string
                            name:
                              description: Name is the name of the artifact driver plugin
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          description: Raw contains raw artifact location details
                          properties:
                            data:
                              description: Data is the string contents of the artifact
                              type: string
                          required:
                          - data
                          type: object
                        recurseMode:
                          description: If mode is set, apply the permission recursively into the artifact if it is a folder
                          type: boolean
                        s3:
                          description: S3 contains S3 artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            caSecret:
                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                              properties:
                                objectLocking:
                                  description: ObjectLocking Enable object locking
                                  type: boolean
                              type: object
                            encryptionOptions:
                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                              properties:
                                enableEncryption:
                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                  type: boolean
                                kmsEncryptionContext:
                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                  type: string
                                kmsKeyId:
                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                  type: string
                                serverSideCustomerKeySecret:
                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            insecure:
                              description: Insecure will connect to the service with TLS
                              type: boolean
                            key:
                              description: Key is the key in the bucket where the artifact resides
                              type: string
                            region:
                              description: Region contains the optional bucket region
                              type: string
                            roleARN:
                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                              type: string
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          type: object
                        subPath:
                          description: SubPath allows an artifact to be sourced from a subpath within the specified source
                          type: string
                      required:
                      - name
                      type: object
                      x-kubernetes-validations:
                      - message: at most one artifact location can be specified
                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                    type: array
                  parameters:
                    description: Parameters is the list of parameters to pass to the template or workflow
                    items:
                      description: Parameter indicate a passed string parameter to a service template with an optional default value
                      properties:
                        default:
                          description: Default is the default value to use for an input parameter if a value was not supplied
                          type: string
                        description:
                          description: Description is the parameter description
                          type: string
                        enum:
                          description: Enum holds a list of string values to choose from, for the actual value of the parameter
                          items:
                            description: '* It''s JSON type is just string.

                              * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                              * It will marshall back to string - marshalling is not symmetric.'
                            type: string
                          minItems: 1
                          type: array
                        globalName:
                          description: 'GlobalName exports an output parameter to the global scope, making it available as

                            ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                          type: string
                        name:
                          description: Name is the parameter name
                          pattern: ^[-a-zA-Z0-9_]+$
                          type: string
                        value:
                          description: 'Value is the literal value to use for the parameter.

                            If specified in the context of an input parameter, any passed values take precedence over the specified value'
                          type: string
                        valueFrom:
                          description: ValueFrom is the source for the output parameter's value
                          properties:
                            configMapKeyRef:
                              description: ConfigMapKeyRef is configmap selector for input parameter configuration
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            default:
                              description: Default specifies a value to be used if retrieving the value from the specified source fails
                              type: string
                            event:
                              description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                              type: string
                            expression:
                              description: Expression, if defined, is evaluated to specify the value for the parameter
                              type: string
                            jqFilter:
                              description: JQFilter expression against the resource object in resource templates
                              type: string
                            jsonPath:
                              description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                              type: string
                            parameter:
                              description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                              type: string
                            path:
                              description: Path in the container to retrieve an output parameter value from in container templates
                              type: string
                            supplied:
                              description: Supplied value to be filled in directly, either through the CLI, API, etc.
                              type: object
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
              artifactGC:
                description: 'ArtifactGC describes the strategy to use when deleting artifacts from completed or deleted workflows (applies to all output Artifacts

                  unless Artifact.ArtifactGC is specified, which overrides this)'
                properties:
                  forceFinalizerRemoval:
                    description: 'ForceFinalizerRemoval: if set to true, the finalizer will be removed in the case that Artifact GC fails'
                    type: boolean
                  podMetadata:
                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  podSpecPatch:
                    description: PodSpecPatch holds strategic merge patch to apply against the artgc pod spec.
                    type: string
                  serviceAccountName:
                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                    type: string
                  strategy:
                    description: Strategy is the strategy to use.
                    enum:
                    - ''
                    - OnWorkflowCompletion
                    - OnWorkflowDeletion
                    - Never
                    type: string
                type: object
              artifactRepositoryRef:
                description: ArtifactRepositoryRef specifies the configMap name and key containing the artifact repository config.
                properties:
                  configMap:
                    description: The name of the config map. Defaults to "artifact-repositories".
                    type: string
                  key:
                    description: The config map key. Defaults to the value of the "workflows.argoproj.io/default-artifact-repository" annotation.
                    type: string
                type: object
              automountServiceAccountToken:
                description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods.

                  ServiceAccountName of ExecutorConfig must be specified if this value is false.'
                type: boolean
              dnsConfig:
                description: 'PodDNSConfig defines the DNS parameters of a pod in addition to

                  those generated from DNSPolicy.'
                properties:
                  nameservers:
                    description: 'A list of DNS name server IP addresses.

                      This will be appended to the base nameservers generated from DNSPolicy.

                      Duplicated nameservers will be removed.'
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: atomic
                  options:
                    description: 'A list of DNS resolver options.

                      This will be merged with the base options generated from DNSPolicy.

                      Duplicated entries will be removed. Resolution options given in Options

                      will override those that appear in the base DNSPolicy.'
                    items:
                      description: PodDNSConfigOption defines DNS resolver options of a pod.
                      properties:
                        name:
                          description: 'Name is this DNS resolver option''s name.

                            Required.'
                          type: string
                        value:
                          description: Value is this DNS resolver option's value.
                          type: string
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  searches:
                    description: 'A list of DNS search domains for host-name lookup.

                      This will be appended to the base search paths generated from DNSPolicy.

                      Duplicated search paths will be removed.'
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: atomic
                type: object
              dnsPolicy:
                description: 'Set DNS policy for workflow pods.

                  Defaults to "ClusterFirst".

                  Valid values are ''ClusterFirstWithHostNet'', ''ClusterFirst'', ''Default'' or ''None''.

                  DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.

                  To have DNS options set along with hostNetwork, you have to specify DNS policy

                  explicitly to ''ClusterFirstWithHostNet''.'
                type: string
              entrypoint:
                description: Entrypoint is a template reference to the starting point of the workflow.
                type: string
              executor:
                description: Executor holds configurations of executor containers of the workflow.
                properties:
                  serviceAccountName:
                    description: ServiceAccountName specifies the service account name of the executor container.
                    type: string
                type: object
              hooks:
                additionalProperties:
                  properties:
                    arguments:
                      description: Arguments hold arguments to the template
                      properties:
                        artifacts:
                          description: Artifacts is the list of artifacts to pass to the template or workflow
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        parameters:
                          description: Parameters is the list of parameters to pass to the template or workflow
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                      type: object
                    expression:
                      description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                        be retried and the retry strategy will be ignored'
                      type: string
                    template:
                      description: Template is the name of the template to execute by the hook
                      type: string
                    templateRef:
                      description: TemplateRef is the reference to the template resource to execute by the hook
                      properties:
                        clusterScope:
                          description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                          type: boolean
                        name:
                          description: Name is the resource name of the template.
                          type: string
                        template:
                          description: Template is the name of referred template in the resource.
                          type: string
                      type: object
                  type: object
                description: 'Hooks holds the lifecycle hook which is invoked at lifecycle of

                  step, irrespective of the success, failure, or error status of the primary step'
                type: object
              hostAliases:
                items:
                  description: 'HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the

                    pod''s hosts file.'
                  properties:
                    hostnames:
                      description: Hostnames for the above IP address.
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: atomic
                    ip:
                      description: IP address of the host file entry.
                      type: string
                  required:
                  - ip
                  type: object
                type: array
              hostNetwork:
                description: Host networking requested for this workflow pod. Default to false.
                type: boolean
              imagePullSecrets:
                description: 'ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images

                  in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets

                  can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.

                  More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod'
                items:
                  description: 'LocalObjectReference contains enough information to let you locate the

                    referenced object inside the same namespace.'
                  properties:
                    name:
                      default: ''
                      description: 'Name of the referent.

                        This field is effectively required, but due to backwards compatibility is

                        allowed to be empty. Instances of this type with an empty value here are

                        almost certainly wrong.

                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                type: array
              metrics:
                description: Metrics are a list of metrics emitted from this Workflow
                properties:
                  prometheus:
                    description: 'Prometheus is a list of prometheus metrics to be emitted

                      MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                    items:
                      description: Prometheus is a prometheus metric to be emitted
                      properties:
                        counter:
                          description: Counter is a counter metric
                          properties:
                            value:
                              description: Value is the value of the metric
                              minLength: 1
                              type: string
                          required:
                          - value
                          type: object
                        gauge:
                          description: Gauge is a gauge metric
                          properties:
                            operation:
                              description: Operation defines the operation to apply with value and the metrics' current value
                              enum:
                              - Set
                              - Add
                              - Sub
                              type: string
                            realtime:
                              description: Realtime emits this metric in real time if applicable
                              type: boolean
                            value:
                              description: 'Value is the value to be used in the operation with the metric''s current value. If no operation is set,

                                value is the value of the metric

                                MaxLength is an artificial limit to limit CEL validation costs - see note at top of file'
                              maxLength: 256
                              minLength: 1
                              type: string
                          required:
                          - realtime
                          - value
                          type: object
                          x-kubernetes-validations:
                          - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                            rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                        help:
                          description: Help is a string that describes the metric
                          minLength: 1
                          type: string
                        histogram:
                          description: Histogram is a histogram metric
                          properties:
                            buckets:
                              description: Buckets is a list of bucket divisors for the histogram
                              items:
                                type: number
                              type: array
                            value:
                              description: Value is the value of the metric
                              minLength: 1
                              type: string
                          required:
                          - buckets
                          - value
                          type: object
                        labels:
                          description: Labels is a list of metric labels
                          items:
                            description: MetricLabel is a single label for a prometheus metric
                            properties:
                              key:
                                pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                type: string
                              value:
                                type: string
                            required:
                            - key
                            - value
                            type: object
                          type: array
                        name:
                          description: Name is the name of the metric
                          pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                          type: string
                        when:
                          description: When is a conditional statement that decides when to emit the metric
                          type: string
                      required:
                      - help
                      - name
                      type: object
                    maxItems: 100
                    type: array
                required:
                - prometheus
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                description: 'NodeSelector is a selector which will result in all pods of the workflow

                  to be scheduled on the selected node(s). This is able to be overridden by

                  a nodeSelector specified in the template.'
                type: object
              onExit:
                description: 'OnExit is a template reference which is invoked at the end of the

                  workflow, irrespective of the success, failure, or error of the

                  primary workflow.'
                type: string
              parallelism:
                description: Parallelism limits the max total parallel pods that can execute at the same time in a workflow
                format: int64
                minimum: 1
                type: integer
              podDisruptionBudget:
                description: 'PodDisruptionBudget holds the number of concurrent disruptions that you allow for Workflow''s Pods.

                  Controller will automatically add the selector with workflow name, if selector is empty.

                  Optional: Defaults to empty.'
                properties:
                  maxUnavailable:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'An eviction is allowed if at most "maxUnavailable" pods selected by

                      "selector" are unavailable after the eviction, i.e. even in absence of

                      the evicted pod. For example, one can prevent all voluntary evictions

                      by specifying 0. This is a mutually exclusive setting with "minAvailable".'
                    x-kubernetes-int-or-string: true
                  minAvailable:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'An eviction is allowed if at least "minAvailable" pods selected by

                      "selector" will still be available after the eviction, i.e. even in the

                      absence of the evicted pod.  So for example you can prevent all voluntary

                      evictions by specifying "100%".'
                    x-kubernetes-int-or-string: true
                  selector:
                    description: 'Label query over pods whose evictions are managed by the disruption

                      budget.

                      A null selector will match no pods, while an empty ({}) selector will select

                      all pods within the namespace.'
                    properties:
                      matchExpressions:
                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                        items:
                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                            relates the key and values.'
                          properties:
                            key:
                              description: key is the label key that the selector applies to.
                              type: string
                            operator:
                              description: 'operator represents a key''s relationship to a set of values.

                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                              type: string
                            values:
                              description: 'values is an array of string values. If the operator is In or NotIn,

                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                the values array must be empty. This array is replaced during a strategic

                                merge patch.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                        type: object
                    type: object
                    x-kubernetes-map-type: atomic
                  unhealthyPodEvictionPolicy:
                    description: 'UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods

                      should be considered for eviction. Current implementation considers healthy pods,

                      as pods that have status.conditions item with type="Ready",status="True".


                      Valid policies are IfHealthyBudget and AlwaysAllow.

                      If no policy is specified, the default behavior will be used,

                      which corresponds to the IfHealthyBudget policy.


                      IfHealthyBudget policy means that running pods (status.phase="Running"),

                      but not yet healthy can be evicted only if the guarded application is not

                      disrupted (status.currentHealthy is at least equal to status.desiredHealthy).

                      Healthy pods will be subject to the PDB for eviction.


                      AlwaysAllow policy means that all running pods (status.phase="Running"),

                      but not yet healthy are considered disrupted and can be evicted regardless

                      of whether the criteria in a PDB is met. This means perspective running

                      pods of a disrupted application might not get a chance to become healthy.

                      Healthy pods will be subject to the PDB for eviction.


                      Additional policies may be added in the future.

                      Clients making eviction decisions should disallow eviction of unhealthy pods

                      if they encounter an unrecognized policy in this field.'
                    type: string
                type: object
              podGC:
                description: PodGC describes the strategy to use when deleting completed pods
                properties:
                  deleteDelayDuration:
                    description: DeleteDelayDuration specifies the duration before pods in the GC queue get deleted.
                    type: string
                  labelSelector:
                    description: LabelSelector is the label selector to check if the pods match the labels before being added to the pod GC queue.
                    properties:
                      matchExpressions:
                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                        items:
                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                            relates the key and values.'
                          properties:
                            key:
                              description: key is the label key that the selector applies to.
                              type: string
                            operator:
                              description: 'operator represents a key''s relationship to a set of values.

                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                              type: string
                            values:
                              description: 'values is an array of string values. If the operator is In or NotIn,

                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                the values array must be empty. This array is replaced during a strategic

                                merge patch.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                        type: object
                    type: object
                    x-kubernetes-map-type: atomic
                  strategy:
                    description: Strategy is the strategy to use. One of "OnPodCompletion", "OnPodSuccess", "OnWorkflowCompletion", "OnWorkflowSuccess". If unset, does not delete Pods
                    enum:
                    - ''
                    - OnPodCompletion
                    - OnPodSuccess
                    - OnWorkflowCompletion
                    - OnWorkflowSuccess
                    type: string
                type: object
              podMetadata:
                description: PodMetadata defines additional metadata that should be applied to workflow pods
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              podPriorityClassName:
                description: PriorityClassName to apply to workflow pods.
                type: string
              podSpecPatch:
                description: 'PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of

                  container fields which are not strings (e.g. resource limits).'
                type: string
              priority:
                description: Priority is used if controller is configured to process limited number of workflows in parallel. Workflows with higher priority are processed first.
                format: int32
                type: integer
              retryStrategy:
                description: RetryStrategy for all templates in the workflow.
                properties:
                  affinity:
                    description: Affinity prevents running workflow's step on the same host
                    properties:
                      nodeAntiAffinity:
                        description: 'RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed.

                          In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".'
                        type: object
                    type: object
                  backoff:
                    description: Backoff is a backoff strategy
                    properties:
                      cap:
                        description: 'Cap is a limit on revised values of the duration parameter. If a

                          multiplication by the factor parameter would make the duration

                          exceed the cap then the duration is set to the cap'
                        type: string
                      duration:
                        description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                        type: string
                      factor:
                        anyOf:
                        - type: integer
                        - type: string
                        description: Factor is a factor to multiply the base duration after each failed retry
                        x-kubernetes-int-or-string: true
                      maxDuration:
                        description: 'MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy.

                          It is important to note that if the workflow template includes activeDeadlineSeconds, the pod''s deadline is initially set with activeDeadlineSeconds.

                          However, when the workflow fails, the pod''s deadline is then overridden by maxDuration.

                          This ensures that the workflow does not exceed the specified maximum duration when retries are involved.'
                        type: string
                    type: object
                  expression:
                    description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                      be retried and the retry strategy will be ignored'
                    type: string
                  limit:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'Limit is the maximum number of retry attempts when retrying a container. It does not include the original

                      container; the maximum number of total attempts will be `limit + 1`.'
                    x-kubernetes-int-or-string: true
                  retryPolicy:
                    description: RetryPolicy is a policy of NodePhase statuses that will be retried
                    enum:
                    - Always
                    - OnFailure
                    - OnError
                    - OnTransientError
                    type: string
                type: object
              schedulerName:
                description: 'Set scheduler name for all pods.

                  Will be overridden if container/script template''s scheduler name is set.

                  Default scheduler will be used if neither specified.'
                type: string
              securityContext:
                description: 'SecurityContext holds pod-level security attributes and common container settings.

                  Optional: Defaults to empty.  See type description for default values of each field.'
                properties:
                  appArmorProfile:
                    description: 'appArmorProfile is the AppArmor options to use by the containers in this pod.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      localhostProfile:
                        description: 'localhostProfile indicates a profile loaded on the node that should be used.

                          The profile must be preconfigured on the node to work.

                          Must match the loaded name of the profile.

                          Must be set if and only if type is "Localhost".'
                        type: string
                      type:
                        description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                        type: string
                    required:
                    - type
                    type: object
                  fsGroup:
                    description: 'A special supplemental group that applies to all containers in a pod.

                      Some volume types allow the Kubelet to change the ownership of that volume

                      to be owned by the pod:


                      1. The owning GID will be the FSGroup

                      2. The setgid bit is set (new files created in the volume will be owned by FSGroup)

                      3. The permission bits are OR''d with rw-rw----


                      If unset, the Kubelet will not modify the ownership and permissions of any volume.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  fsGroupChangePolicy:
                    description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume

                      before being exposed inside Pod. This field will only apply to

                      volume types which support fsGroup based ownership(and permissions).

                      It will have no effect on ephemeral volume types such as: secret, configmaps

                      and emptydir.

                      Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  runAsGroup:
                    description: 'The GID to run the entrypoint of the container process.

                      Uses runtime default if unset.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence

                      for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  runAsNonRoot:
                    description: 'Indicates that the container must run as a non-root user.

                      If true, the Kubelet will validate the image at runtime to ensure that it

                      does not run as UID 0 (root) and fail to start the container if it does.

                      If unset or false, no such validation will be performed.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                    type: boolean
                  runAsUser:
                    description: 'The UID to run the entrypoint of the container process.

                      Defaults to user specified in image metadata if unspecified.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence

                      for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  seLinuxChangePolicy:
                    description: 'seLinuxChangePolicy defines how the container''s SELinux label is applied to all volumes used by the Pod.

                      It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.

                      Valid values are "MountOption" and "Recursive".


                      "Recursive" means relabeling of all files on all Pod volumes by the container runtime.

                      This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.


                      "MountOption" mounts all eligible Pod volumes with `-o context` mount option.

                      This requires all Pods that share the same volume to use the same SELinux label.

                      It is not possible to share the same volume among privileged and unprivileged Pods.

                      Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes

                      whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their

                      CSIDriver instance. Other volumes are always re-labelled recursively.

                      "MountOption" value is allowed only when SELinuxMount feature gate is enabled.


                      If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.

                      If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes

                      and "Recursive" for all other volumes.


                      This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.


                      All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  seLinuxOptions:
                    description: 'The SELinux context to be applied to all containers.

                      If unspecified, the container runtime will allocate a random SELinux context for each

                      container.  May also be set in SecurityContext.  If set in

                      both SecurityContext and PodSecurityContext, the value specified in SecurityContext

                      takes precedence for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      level:
                        description: Level is SELinux level label that applies to the container.
                        type: string
                      role:
                        description: Role is a SELinux role label that applies to the container.
                        type: string
                      type:
                        description: Type is a SELinux type label that applies to the container.
                        type: string
                      user:
                        description: User is a SELinux user label that applies to the container.
                        type: string
                    type: object
                  seccompProfile:
                    description: 'The seccomp options to use by the containers in this pod.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      localhostProfile:
                        description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                          The profile must be preconfigured on the node to work.

                          Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                          Must be set if type is "Localhost". Must NOT be set for any other type.'
                        type: string
                      type:
                        description: 'type indicates which kind of seccomp profile will be applied.

                          Valid options are:


                          Localhost - a profile defined in a file on the node should be used.

                          RuntimeDefault - the container runtime default profile should be used.

                          Unconfined - no profile should be applied.'
                        type: string
                    required:
                    - type
                    type: object
                  supplementalGroups:
                    description: 'A list of groups applied to the first process run in each container, in

                      addition to the container''s primary GID and fsGroup (if specified).  If

                      the SupplementalGroupsPolicy feature is enabled, the

                      supplementalGroupsPolicy field determines whether these are in addition

                      to or instead of any group memberships defined in the container image.

                      If unspecified, no additional groups are added, though group memberships

                      defined in the container image may still be used, depending on the

                      supplementalGroupsPolicy field.

                      Note that this field cannot be set when spec.os.name is windows.'
                    items:
                      format: int64
                      type: integer
                    type: array
                    x-kubernetes-list-type: atomic
                  supplementalGroupsPolicy:
                    description: 'Defines how supplemental groups of the first container processes are calculated.

                      Valid values are "Merge" and "Strict". If not specified, "Merge" is used.

                      (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled

                      and the container runtime must implement support for this feature.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  sysctls:
                    description: 'Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported

                      sysctls (by the container runtime) might fail to launch.

                      Note that this field cannot be set when spec.os.name is windows.'
                    items:
                      description: Sysctl defines a kernel parameter to be set
                      properties:
                        name:
                          description: Name of a property to set
                          type: string
                        value:
                          description: Value of a property to set
                          type: string
                      required:
                      - name
                      - value
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  windowsOptions:
                    description: 'The Windows specific settings applied to all containers.

                      If unspecified, the options within a container''s SecurityContext will be used.

                      If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                      Note that this field cannot be set when spec.os.name is linux.'
                    properties:
                      gmsaCredentialSpec:
                        description: 'GMSACredentialSpec is where the GMSA admission webhook

                          (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                          GMSA credential spec named by the GMSACredentialSpecName field.'
                        type: string
                      gmsaCredentialSpecName:
                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                        type: string
                      hostProcess:
                        description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                          All of a Pod''s containers must have the same effective HostProcess value

                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                          In addition, if HostProcess is true then HostNetwork must also be set to true.'
                        type: boolean
                      runAsUserName:
                        description: 'The UserName in Windows to run the entrypoint of the container process.

                          Defaults to the user specified in image metadata if unspecified.

                          May also be set in PodSecurityContext. If set in both SecurityContext and

                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                        type: string
                    type: object
                type: object
              serviceAccountName:
                description: ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as.
                type: string
              shutdown:
                description: Shutdown will shutdown the workflow according to its ShutdownStrategy
                type: string
              suspend:
                description: Suspend will suspend the workflow and prevent execution of any future steps in the workflow
                type: boolean
              synchronization:
                description: Synchronization holds synchronization lock configuration for this Workflow
                properties:
                  mutexes:
                    description: 'v3.6 and after: Mutexes holds the list of Mutex lock details'
                    items:
                      description: Mutex holds Mutex configuration
                      properties:
                        database:
                          description: Database specifies this is database controlled if this is set true
                          type: boolean
                        name:
                          description: name of the mutex
                          type: string
                        namespace:
                          description: 'Namespace is the namespace of the mutex, default: [namespace of workflow]'
                          type: string
                      type: object
                    type: array
                  semaphores:
                    description: 'v3.6 and after: Semaphores holds the list of Semaphores configuration'
                    items:
                      description: SemaphoreRef is a reference of Semaphore
                      properties:
                        configMapKeyRef:
                          description: ConfigMapKeyRef is a configmap selector for Semaphore configuration
                          properties:
                            key:
                              description: The key to select.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the ConfigMap or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        database:
                          description: SyncDatabaseRef is a database reference for Semaphore configuration
                          properties:
                            key:
                              type: string
                          required:
                          - key
                          type: object
                        namespace:
                          description: 'Namespace is the namespace of the configmap, default: [namespace of workflow]'
                          type: string
                      type: object
                    type: array
                type: object
              templateDefaults:
                description: 'TemplateDefaults holds default template values that will apply to all templates in the Workflow, unless overridden on the template-level.

                  All nested field descriptions have been dropped due to Kubernetes size limitations.'
                properties:
                  activeDeadlineSeconds:
                    anyOf:
                    - type: integer
                    - type: string
                    x-kubernetes-int-or-string: true
                  affinity:
                    properties:
                      nodeAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                preference:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            properties:
                              nodeSelectorTerms:
                                items:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                type: array
                                x-kubernetes-list-type: atomic
                            required:
                            - nodeSelectorTerms
                            type: object
                            x-kubernetes-map-type: atomic
                        type: object
                      podAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                        type: object
                      podAntiAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                        type: object
                    type: object
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  archiveLocation:
                    properties:
                      archiveLogs:
                        type: boolean
                      artifactory:
                        properties:
                          passwordSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          url:
                            type: string
                          usernameSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - url
                        type: object
                      azure:
                        properties:
                          accountKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          blob:
                            type: string
                          container:
                            type: string
                          endpoint:
                            type: string
                          useSDKCreds:
                            type: boolean
                        required:
                        - blob
                        - container
                        - endpoint
                        type: object
                      gcs:
                        properties:
                          bucket:
                            type: string
                          key:
                            type: string
                          serviceAccountKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - key
                        type: object
                      git:
                        properties:
                          branch:
                            type: string
                          depth:
                            format: int64
                            type: integer
                          disableSubmodules:
                            type: boolean
                          fetch:
                            items:
                              type: string
                            type: array
                          insecureIgnoreHostKey:
                            type: boolean
                          insecureSkipTLS:
                            type: boolean
                          passwordSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          repo:
                            type: string
                          revision:
                            type: string
                          singleBranch:
                            type: boolean
                          sshPrivateKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          usernameSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - repo
                        type: object
                      hdfs:
                        properties:
                          addresses:
                            items:
                              type: string
                            type: array
                          dataTransferProtection:
                            type: string
                          force:
                            type: boolean
                          hdfsUser:
                            type: string
                          krbCCacheSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbConfigConfigMap:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbKeytabSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbRealm:
                            type: string
                          krbServicePrincipalName:
                            type: string
                          krbUsername:
                            type: string
                          path:
                            type: string
                        required:
                        - path
                        type: object
                      http:
                        properties:
                          auth:
                            properties:
                              basicAuth:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              clientCert:
                                properties:
                                  clientCertSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  clientKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              oauth2:
                                properties:
                                  clientIDSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  clientSecretSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  endpointParams:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - key
                                      type: object
                                    type: array
                                  scopes:
                                    items:
                                      type: string
                                    type: array
                                  tokenURLSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            type: object
                          headers:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                          url:
                            type: string
                        required:
                        - url
                        type: object
                      oss:
                        properties:
                          accessKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          bucket:
                            type: string
                          createBucketIfNotPresent:
                            type: boolean
                          endpoint:
                            type: string
                          key:
                            type: string
                          lifecycleRule:
                            properties:
                              markDeletionAfterDays:
                                format: int32
                                type: integer
                              markInfrequentAccessAfterDays:
                                format: int32
                                type: integer
                            type: object
                          secretKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          securityToken:
                            type: string
                          useSDKCreds:
                            type: boolean
                        required:
                        - key
                        type: object
                      plugin:
                        properties:
                          configuration:
                            type: string
                          connectionTimeoutSeconds:
                            format: int32
                            type: integer
                          key:
                            type: string
                          name:
                            type: string
                        required:
                        - key
                        type: object
                      raw:
                        properties:
                          data:
                            type: string
                        required:
                        - data
                        type: object
                      s3:
                        properties:
                          accessKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          bucket:
                            type: string
                          caSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          createBucketIfNotPresent:
                            properties:
                              objectLocking:
                                type: boolean
                            type: object
                          encryptionOptions:
                            properties:
                              enableEncryption:
                                type: boolean
                              kmsEncryptionContext:
                                type: string
                              kmsKeyId:
                                type: string
                              serverSideCustomerKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          endpoint:
                            type: string
                          insecure:
                            type: boolean
                          key:
                            type: string
                          region:
                            type: string
                          roleARN:
                            type: string
                          secretKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          sessionTokenSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          useSDKCreds:
                            type: boolean
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: at most one artifact location can be specified
                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                  automountServiceAccountToken:
                    type: boolean
                  container:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      command:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                  x-kubernetes-map-type: atomic
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                  x-kubernetes-map-type: atomic
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - name
                        x-kubernetes-list-type: map
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          stopSignal:
                            type: string
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      resizePolicy:
                        items:
                          properties:
                            resourceName:
                              type: string
                            restartPolicy:
                              type: string
                          required:
                          - resourceName
                          - restartPolicy
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      resources:
                        properties:
                          claims:
                            items:
                              properties:
                                name:
                                  type: string
                                request:
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      restartPolicy:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          appArmorProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              drop:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - devicePath
                        x-kubernetes-list-type: map
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - mountPath
                        x-kubernetes-list-type: map
                      workingDir:
                        type: string
                    type: object
                  containerSet:
                    properties:
                      containers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            command:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            dependencies:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                stopSignal:
                                  type: string
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            resizePolicy:
                              items:
                                properties:
                                  resourceName:
                                    type: string
                                  restartPolicy:
                                    type: string
                                required:
                                - resourceName
                                - restartPolicy
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            resources:
                              properties:
                                claims:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      request:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - name
                                  x-kubernetes-list-type: map
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                              type: object
                            restartPolicy:
                              type: string
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - devicePath
                              x-kubernetes-list-type: map
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - mountPath
                              x-kubernetes-list-type: map
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      retryStrategy:
                        properties:
                          duration:
                            type: string
                          retries:
                            anyOf:
                            - type: integer
                            - type: string
                            x-kubernetes-int-or-string: true
                        required:
                        - retries
                        type: object
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                    required:
                    - containers
                    type: object
                  daemon:
                    type: boolean
                  dag:
                    properties:
                      failFast:
                        type: boolean
                      target:
                        type: string
                      tasks:
                        items:
                          properties:
                            arguments:
                              properties:
                                artifacts:
                                  items:
                                    properties:
                                      archive:
                                        properties:
                                          none:
                                            type: object
                                          tar:
                                            properties:
                                              compressionLevel:
                                                format: int32
                                                type: integer
                                            type: object
                                          zip:
                                            type: object
                                        type: object
                                      archiveLogs:
                                        type: boolean
                                      artifactGC:
                                        properties:
                                          podMetadata:
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                          serviceAccountName:
                                            type: string
                                          strategy:
                                            enum:
                                            - ''
                                            - OnWorkflowCompletion
                                            - OnWorkflowDeletion
                                            - Never
                                            type: string
                                        type: object
                                      artifactory:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          url:
                                            type: string
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - url
                                        type: object
                                      azure:
                                        properties:
                                          accountKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          blob:
                                            type: string
                                          container:
                                            type: string
                                          endpoint:
                                            type: string
                                          useSDKCreds:
                                            type: boolean
                                        required:
                                        - blob
                                        - container
                                        - endpoint
                                        type: object
                                      deleted:
                                        type: boolean
                                      from:
                                        type: string
                                      fromExpression:
                                        type: string
                                      gcs:
                                        properties:
                                          bucket:
                                            type: string
                                          key:
                                            type: string
                                          serviceAccountKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - key
                                        type: object
                                      git:
                                        properties:
                                          branch:
                                            type: string
                                          depth:
                                            format: int64
                                            type: integer
                                          disableSubmodules:
                                            type: boolean
                                          fetch:
                                            items:
                                              type: string
                                            type: array
                                          insecureIgnoreHostKey:
                                            type: boolean
                                          insecureSkipTLS:
                                            type: boolean
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          repo:
                                            type: string
                                          revision:
                                            type: string
                                          singleBranch:
                                            type: boolean
                                          sshPrivateKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - repo
                                        type: object
                                      globalName:
                                        type: string
                                      hdfs:
                                        properties:
                                          addresses:
                                            items:
                                              type: string
                                            type: array
                                          dataTransferProtection:
                                            type: string
                                          force:
                                            type: boolean
                                          hdfsUser:
                                            type: string
                                          krbCCacheSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbConfigConfigMap:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbKeytabSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbRealm:
                                            type: string
                                          krbServicePrincipalName:
                                            type: string
                                          krbUsername:
                                            type: string
                                          path:
                                            type: string
                                        required:
                                        - path
                                        type: object
                                      http:
                                        properties:
                                          auth:
                                            properties:
                                              basicAuth:
                                                properties:
                                                  passwordSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              clientCert:
                                                properties:
                                                  clientCertSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              oauth2:
                                                properties:
                                                  clientIDSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientSecretSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  endpointParams:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        value:
                                                          type: string
                                                      required:
                                                      - key
                                                      type: object
                                                    type: array
                                                  scopes:
                                                    items:
                                                      type: string
                                                    type: array
                                                  tokenURLSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                            type: object
                                          headers:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          url:
                                            type: string
                                        required:
                                        - url
                                        type: object
                                      mode:
                                        format: int32
                                        maximum: 511
                                        minimum: 0
                                        type: integer
                                      name:
                                        pattern: ^[-a-zA-Z0-9_{}.]+$
                                        type: string
                                      optional:
                                        type: boolean
                                      oss:
                                        properties:
                                          accessKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            type: string
                                          createBucketIfNotPresent:
                                            type: boolean
                                          endpoint:
                                            type: string
                                          key:
                                            type: string
                                          lifecycleRule:
                                            properties:
                                              markDeletionAfterDays:
                                                format: int32
                                                type: integer
                                              markInfrequentAccessAfterDays:
                                                format: int32
                                                type: integer
                                            type: object
                                          secretKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          securityToken:
                                            type: string
                                          useSDKCreds:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      path:
                                        type: string
                                      plugin:
                                        properties:
                                          configuration:
                                            type: string
                                          connectionTimeoutSeconds:
                                            format: int32
                                            type: integer
                                          key:
                                            type: string
                                          name:
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      raw:
                                        properties:
                                          data:
                                            type: string
                                        required:
                                        - data
                                        type: object
                                      recurseMode:
                                        type: boolean
                                      s3:
                                        properties:
                                          accessKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            type: string
                                          caSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          createBucketIfNotPresent:
                                            properties:
                                              objectLocking:
                                                type: boolean
                                            type: object
                                          encryptionOptions:
                                            properties:
                                              enableEncryption:
                                                type: boolean
                                              kmsEncryptionContext:
                                                type: string
                                              kmsKeyId:
                                                type: string
                                              serverSideCustomerKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          endpoint:
                                            type: string
                                          insecure:
                                            type: boolean
                                          key:
                                            type: string
                                          region:
                                            type: string
                                          roleARN:
                                            type: string
                                          secretKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          sessionTokenSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          useSDKCreds:
                                            type: boolean
                                        type: object
                                      subPath:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                    x-kubernetes-validations:
                                    - message: at most one artifact location can be specified
                                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                  type: array
                                parameters:
                                  items:
                                    properties:
                                      default:
                                        type: string
                                      description:
                                        type: string
                                      enum:
                                        items:
                                          type: string
                                        minItems: 1
                                        type: array
                                      globalName:
                                        type: string
                                      name:
                                        pattern: ^[-a-zA-Z0-9_]+$
                                        type: string
                                      value:
                                        type: string
                                      valueFrom:
                                        properties:
                                          configMapKeyRef:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          default:
                                            type: string
                                          event:
                                            type: string
                                          expression:
                                            type: string
                                          jqFilter:
                                            type: string
                                          jsonPath:
                                            type: string
                                          parameter:
                                            type: string
                                          path:
                                            type: string
                                          supplied:
                                            type: object
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  type: array
                              type: object
                            continueOn:
                              properties:
                                error:
                                  type: boolean
                                failed:
                                  type: boolean
                              type: object
                            dependencies:
                              items:
                                type: string
                              type: array
                            depends:
                              type: string
                            hooks:
                              additionalProperties:
                                properties:
                                  arguments:
                                    properties:
                                      artifacts:
                                        items:
                                          properties:
                                            archive:
                                              properties:
                                                none:
                                                  type: object
                                                tar:
                                                  properties:
                                                    compressionLevel:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                zip:
                                                  type: object
                                              type: object
                                            archiveLogs:
                                              type: boolean
                                            artifactGC:
                                              properties:
                                                podMetadata:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                serviceAccountName:
                                                  type: string
                                                strategy:
                                                  enum:
                                                  - ''
                                                  - OnWorkflowCompletion
                                                  - OnWorkflowDeletion
                                                  - Never
                                                  type: string
                                              type: object
                                            artifactory:
                                              properties:
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                url:
                                                  type: string
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - url
                                              type: object
                                            azure:
                                              properties:
                                                accountKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                blob:
                                                  type: string
                                                container:
                                                  type: string
                                                endpoint:
                                                  type: string
                                                useSDKCreds:
                                                  type: boolean
                                              required:
                                              - blob
                                              - container
                                              - endpoint
                                              type: object
                                            deleted:
                                              type: boolean
                                            from:
                                              type: string
                                            fromExpression:
                                              type: string
                                            gcs:
                                              properties:
                                                bucket:
                                                  type: string
                                                key:
                                                  type: string
                                                serviceAccountKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - key
                                              type: object
                                            git:
                                              properties:
                                                branch:
                                                  type: string
                                                depth:
                                                  format: int64
                                                  type: integer
                                                disableSubmodules:
                                                  type: boolean
                                                fetch:
                                                  items:
                                                    type: string
                                                  type: array
                                                insecureIgnoreHostKey:
                                                  type: boolean
                                                insecureSkipTLS:
                                                  type: boolean
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                repo:
                                                  type: string
                                                revision:
                                                  type: string
                                                singleBranch:
                                                  type: boolean
                                                sshPrivateKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - repo
                                              type: object
                                            globalName:
                                              type: string
                                            hdfs:
                                              properties:
                                                addresses:
                                                  items:
                                                    type: string
                                                  type: array
                                                dataTransferProtection:
                                                  type: string
                                                force:
                                                  type: boolean
                                                hdfsUser:
                                                  type: string
                                                krbCCacheSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbConfigConfigMap:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbKeytabSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbRealm:
                                                  type: string
                                                krbServicePrincipalName:
                                                  type: string
                                                krbUsername:
                                                  type: string
                                                path:
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                            http:
                                              properties:
                                                auth:
                                                  properties:
                                                    basicAuth:
                                                      properties:
                                                        passwordSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        usernameSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    clientCert:
                                                      properties:
                                                        clientCertSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientKeySecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    oauth2:
                                                      properties:
                                                        clientIDSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientSecretSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        endpointParams:
                                                          items:
                                                            properties:
                                                              key:
                                                                type: string
                                                              value:
                                                                type: string
                                                            required:
                                                            - key
                                                            type: object
                                                          type: array
                                                        scopes:
                                                          items:
                                                            type: string
                                                          type: array
                                                        tokenURLSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                  type: object
                                                headers:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                url:
                                                  type: string
                                              required:
                                              - url
                                              type: object
                                            mode:
                                              format: int32
                                              maximum: 511
                                              minimum: 0
                                              type: integer
                                            name:
                                              pattern: ^[-a-zA-Z0-9_{}.]+$
                                              type: string
                                            optional:
                                              type: boolean
                                            oss:
                                              properties:
                                                accessKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  type: string
                                                createBucketIfNotPresent:
                                                  type: boolean
                                                endpoint:
                                                  type: string
                                                key:
                                                  type: string
                                                lifecycleRule:
                                                  properties:
                                                    markDeletionAfterDays:
                                                      format: int32
                                                      type: integer
                                                    markInfrequentAccessAfterDays:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                secretKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                securityToken:
                                                  type: string
                                                useSDKCreds:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            path:
                                              type: string
                                            plugin:
                                              properties:
                                                configuration:
                                                  type: string
                                                connectionTimeoutSeconds:
                                                  format: int32
                                                  type: integer
                                                key:
                                                  type: string
                                                name:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            raw:
                                              properties:
                                                data:
                                                  type: string
                                              required:
                                              - data
                                              type: object
                                            recurseMode:
                                              type: boolean
                                            s3:
                                              properties:
                                                accessKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  type: string
                                                caSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                createBucketIfNotPresent:
                                                  properties:
                                                    objectLocking:
                                                      type: boolean
                                                  type: object
                                                encryptionOptions:
                                                  properties:
                                                    enableEncryption:
                                                      type: boolean
                                                    kmsEncryptionContext:
                                                      type: string
                                                    kmsKeyId:
                                                      type: string
                                                    serverSideCustomerKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                endpoint:
                                                  type: string
                                                insecure:
                                                  type: boolean
                                                key:
                                                  type: string
                                                region:
                                                  type: string
                                                roleARN:
                                                  type: string
                                                secretKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                sessionTokenSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                useSDKCreds:
                                                  type: boolean
                                              type: object
                                            subPath:
                                              type: string
                                          required:
                                          - name
                                          type: object
                                          x-kubernetes-validations:
                                          - message: at most one artifact location can be specified
                                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                        type: array
                                      parameters:
                                        items:
                                          properties:
                                            default:
                                              type: string
                                            description:
                                              type: string
                                            enum:
                                              items:
                                                type: string
                                              minItems: 1
                                              type: array
                                            globalName:
                                              type: string
                                            name:
                                              pattern: ^[-a-zA-Z0-9_]+$
                                              type: string
                                            value:
                                              type: string
                                            valueFrom:
                                              properties:
                                                configMapKeyRef:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                default:
                                                  type: string
                                                event:
                                                  type: string
                                                expression:
                                                  type: string
                                                jqFilter:
                                                  type: string
                                                jsonPath:
                                                  type: string
                                                parameter:
                                                  type: string
                                                path:
                                                  type: string
                                                supplied:
                                                  type: object
                                              type: object
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                                  expression:
                                    type: string
                                  template:
                                    type: string
                                  templateRef:
                                    properties:
                                      clusterScope:
                                        type: boolean
                                      name:
                                        type: string
                                      template:
                                        type: string
                                    type: object
                                type: object
                              type: object
                            inline:
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              maxLength: 128
                              pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                              type: string
                            onExit:
                              type: string
                            template:
                              type: string
                            templateRef:
                              properties:
                                clusterScope:
                                  type: boolean
                                name:
                                  type: string
                                template:
                                  type: string
                              type: object
                            when:
                              type: string
                            withItems:
                              x-kubernetes-preserve-unknown-fields: true
                            withParam:
                              type: string
                            withSequence:
                              properties:
                                count:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                end:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                format:
                                  type: string
                                start:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              type: object
                              x-kubernetes-validations:
                              - message: only one of count or end can be defined
                                rule: '!(has(self.count) && has(self.end))'
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: cannot use both 'depends' and 'dependencies'
                            rule: '!has(self.depends) || !has(self.dependencies)'
                          - message: cannot use 'continueOn' when using 'depends'
                            rule: '!has(self.depends) || !has(self.continueOn)'
                          - message: task name cannot begin with a digit when using 'depends' or 'dependencies'
                            rule: '!(has(self.depends) || has(self.dependencies)) || !self.name.matches(''^[0-9]'')'
                        maxItems: 200
                        minItems: 1
                        type: array
                    required:
                    - tasks
                    type: object
                  data:
                    properties:
                      source:
                        properties:
                          artifactPaths:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: object
                      transformation:
                        items:
                          properties:
                            expression:
                              type: string
                          required:
                          - expression
                          type: object
                        type: array
                    required:
                    - source
                    - transformation
                    type: object
                  executor:
                    properties:
                      serviceAccountName:
                        type: string
                    type: object
                  failFast:
                    type: boolean
                  hostAliases:
                    items:
                      properties:
                        hostnames:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        ip:
                          type: string
                      required:
                      - ip
                      type: object
                    type: array
                  http:
                    properties:
                      body:
                        type: string
                      bodyFrom:
                        properties:
                          bytes:
                            format: byte
                            type: string
                        type: object
                      headers:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      insecureSkipVerify:
                        type: boolean
                      method:
                        type: string
                      successCondition:
                        type: string
                      timeoutSeconds:
                        format: int64
                        type: integer
                      url:
                        type: string
                    required:
                    - url
                    type: object
                  initContainers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              type: string
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        mirrorVolumeMounts:
                          type: boolean
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          items:
                            properties:
                              resourceName:
                                type: string
                              restartPolicy:
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          properties:
                            claims:
                              items:
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        restartPolicy:
                          type: string
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  inputs:
                    properties:
                      artifacts:
                        items:
                          properties:
                            archive:
                              properties:
                                none:
                                  type: object
                                tar:
                                  properties:
                                    compressionLevel:
                                      format: int32
                                      type: integer
                                  type: object
                                zip:
                                  type: object
                              type: object
                            archiveLogs:
                              type: boolean
                            artifactGC:
                              properties:
                                podMetadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                serviceAccountName:
                                  type: string
                                strategy:
                                  enum:
                                  - ''
                                  - OnWorkflowCompletion
                                  - OnWorkflowDeletion
                                  - Never
                                  type: string
                              type: object
                            artifactory:
                              properties:
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  type: string
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              properties:
                                accountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  type: string
                                container:
                                  type: string
                                endpoint:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            deleted:
                              type: boolean
                            from:
                              type: string
                            fromExpression:
                              type: string
                            gcs:
                              properties:
                                bucket:
                                  type: string
                                key:
                                  type: string
                                serviceAccountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              properties:
                                branch:
                                  type: string
                                depth:
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  type: boolean
                                fetch:
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  type: boolean
                                insecureSkipTLS:
                                  type: boolean
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  type: string
                                revision:
                                  type: string
                                singleBranch:
                                  type: boolean
                                sshPrivateKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            globalName:
                              type: string
                            hdfs:
                              properties:
                                addresses:
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  type: string
                                force:
                                  type: boolean
                                hdfsUser:
                                  type: string
                                krbCCacheSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  type: string
                                krbServicePrincipalName:
                                  type: string
                                krbUsername:
                                  type: string
                                path:
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              properties:
                                auth:
                                  properties:
                                    basicAuth:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      properties:
                                        clientCertSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      properties:
                                        clientIDSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  type: string
                              required:
                              - url
                              type: object
                            mode:
                              format: int32
                              maximum: 511
                              minimum: 0
                              type: integer
                            name:
                              pattern: ^[-a-zA-Z0-9_{}.]+$
                              type: string
                            optional:
                              type: boolean
                            oss:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                createBucketIfNotPresent:
                                  type: boolean
                                endpoint:
                                  type: string
                                key:
                                  type: string
                                lifecycleRule:
                                  properties:
                                    markDeletionAfterDays:
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - key
                              type: object
                            path:
                              type: string
                            plugin:
                              properties:
                                configuration:
                                  type: string
                                connectionTimeoutSeconds:
                                  format: int32
                                  type: integer
                                key:
                                  type: string
                                name:
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              properties:
                                data:
                                  type: string
                              required:
                              - data
                              type: object
                            recurseMode:
                              type: boolean
                            s3:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                caSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  properties:
                                    objectLocking:
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  properties:
                                    enableEncryption:
                                      type: boolean
                                    kmsEncryptionContext:
                                      type: string
                                    kmsKeyId:
                                      type: string
                                    serverSideCustomerKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  type: string
                                insecure:
                                  type: boolean
                                key:
                                  type: string
                                region:
                                  type: string
                                roleARN:
                                  type: string
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  type: boolean
                              type: object
                            subPath:
                              type: string
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: array
                      parameters:
                        items:
                          properties:
                            default:
                              type: string
                            description:
                              type: string
                            enum:
                              items:
                                type: string
                              minItems: 1
                              type: array
                            globalName:
                              type: string
                            name:
                              pattern: ^[-a-zA-Z0-9_]+$
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                default:
                                  type: string
                                event:
                                  type: string
                                expression:
                                  type: string
                                jqFilter:
                                  type: string
                                jsonPath:
                                  type: string
                                parameter:
                                  type: string
                                path:
                                  type: string
                                supplied:
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        maxItems: 500
                        type: array
                    type: object
                  memoize:
                    properties:
                      cache:
                        properties:
                          configMap:
                            properties:
                              name:
                                default: ''
                                type: string
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - configMap
                        type: object
                      key:
                        type: string
                      maxAge:
                        type: string
                    required:
                    - cache
                    - key
                    - maxAge
                    type: object
                  metadata:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  metrics:
                    properties:
                      prometheus:
                        items:
                          properties:
                            counter:
                              properties:
                                value:
                                  minLength: 1
                                  type: string
                              required:
                              - value
                              type: object
                            gauge:
                              properties:
                                operation:
                                  enum:
                                  - Set
                                  - Add
                                  - Sub
                                  type: string
                                realtime:
                                  type: boolean
                                value:
                                  maxLength: 256
                                  minLength: 1
                                  type: string
                              required:
                              - realtime
                              - value
                              type: object
                              x-kubernetes-validations:
                              - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                            help:
                              minLength: 1
                              type: string
                            histogram:
                              properties:
                                buckets:
                                  items:
                                    type: number
                                  type: array
                                value:
                                  minLength: 1
                                  type: string
                              required:
                              - buckets
                              - value
                              type: object
                            labels:
                              items:
                                properties:
                                  key:
                                    pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                    type: string
                                  value:
                                    type: string
                                required:
                                - key
                                - value
                                type: object
                              type: array
                            name:
                              pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                              type: string
                            when:
                              type: string
                          required:
                          - help
                          - name
                          type: object
                        maxItems: 100
                        type: array
                    required:
                    - prometheus
                    type: object
                  name:
                    maxLength: 128
                    pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                    type: string
                  nodeSelector:
                    additionalProperties:
                      type: string
                    type: object
                  outputs:
                    properties:
                      artifacts:
                        items:
                          properties:
                            archive:
                              properties:
                                none:
                                  type: object
                                tar:
                                  properties:
                                    compressionLevel:
                                      format: int32
                                      type: integer
                                  type: object
                                zip:
                                  type: object
                              type: object
                            archiveLogs:
                              type: boolean
                            artifactGC:
                              properties:
                                podMetadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                serviceAccountName:
                                  type: string
                                strategy:
                                  enum:
                                  - ''
                                  - OnWorkflowCompletion
                                  - OnWorkflowDeletion
                                  - Never
                                  type: string
                              type: object
                            artifactory:
                              properties:
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  type: string
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              properties:
                                accountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  type: string
                                container:
                                  type: string
                                endpoint:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            deleted:
                              type: boolean
                            from:
                              type: string
                            fromExpression:
                              type: string
                            gcs:
                              properties:
                                bucket:
                                  type: string
                                key:
                                  type: string
                                serviceAccountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              properties:
                                branch:
                                  type: string
                                depth:
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  type: boolean
                                fetch:
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  type: boolean
                                insecureSkipTLS:
                                  type: boolean
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  type: string
                                revision:
                                  type: string
                                singleBranch:
                                  type: boolean
                                sshPrivateKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            globalName:
                              type: string
                            hdfs:
                              properties:
                                addresses:
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  type: string
                                force:
                                  type: boolean
                                hdfsUser:
                                  type: string
                                krbCCacheSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  type: string
                                krbServicePrincipalName:
                                  type: string
                                krbUsername:
                                  type: string
                                path:
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              properties:
                                auth:
                                  properties:
                                    basicAuth:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      properties:
                                        clientCertSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      properties:
                                        clientIDSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  type: string
                              required:
                              - url
                              type: object
                            mode:
                              format: int32
                              maximum: 511
                              minimum: 0
                              type: integer
                            name:
                              pattern: ^[-a-zA-Z0-9_{}.]+$
                              type: string
                            optional:
                              type: boolean
                            oss:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                createBucketIfNotPresent:
                                  type: boolean
                                endpoint:
                                  type: string
                                key:
                                  type: string
                                lifecycleRule:
                                  properties:
                                    markDeletionAfterDays:
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - key
                              type: object
                            path:
                              type: string
                            plugin:
                              properties:
                                configuration:
                                  type: string
                                connectionTimeoutSeconds:
                                  format: int32
                                  type: integer
                                key:
                                  type: string
                                name:
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              properties:
                                data:
                                  type: string
                              required:
                              - data
                              type: object
                            recurseMode:
                              type: boolean
                            s3:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                caSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  properties:
                                    objectLocking:
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  properties:
                                    enableEncryption:
                                      type: boolean
                                    kmsEncryptionContext:
                                      type: string
                                    kmsKeyId:
                                      type: string
                                    serverSideCustomerKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  type: string
                                insecure:
                                  type: boolean
                                key:
                                  type: string
                                region:
                                  type: string
                                roleARN:
                                  type: string
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  type: boolean
                              type: object
                            subPath:
                              type: string
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: array
                      exitCode:
                        type: string
                      parameters:
                        items:
                          properties:
                            default:
                              type: string
                            description:
                              type: string
                            enum:
                              items:
                                type: string
                              minItems: 1
                              type: array
                            globalName:
                              type: string
                            name:
                              pattern: ^[-a-zA-Z0-9_]+$
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                default:
                                  type: string
                                event:
                                  type: string
                                expression:
                                  type: string
                                jqFilter:
                                  type: string
                                jsonPath:
                                  type: string
                                parameter:
                                  type: string
                                path:
                                  type: string
                                supplied:
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      result:
                        type: string
                    type: object
                  parallelism:
                    format: int64
                    minimum: 1
                    type: integer
                  plugin:
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  podSpecPatch:
                    type: string
                  priorityClassName:
                    type: string
                  resource:
                    properties:
                      action:
                        enum:
                        - get
                        - create
                        - apply
                        - delete
                        - replace
                        - patch
                        type: string
                      failureCondition:
                        type: string
                      flags:
                        items:
                          type: string
                        type: array
                      manifest:
                        type: string
                      manifestFrom:
                        properties:
                          artifact:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        required:
                        - artifact
                        type: object
                      mergeStrategy:
                        enum:
                        - strategic
                        - merge
                        - json
                        type: string
                      setOwnerReference:
                        type: boolean
                      successCondition:
                        type: string
                    required:
                    - action
                    type: object
                    x-kubernetes-validations:
                    - message: only one of manifest or manifestFrom can be specified
                      rule: (has(self.manifest) && !has(self.manifestFrom)) || (!has(self.manifest) && has(self.manifestFrom)) || (!has(self.manifest) && !has(self.manifestFrom))
                  retryStrategy:
                    properties:
                      affinity:
                        properties:
                          nodeAntiAffinity:
                            type: object
                        type: object
                      backoff:
                        properties:
                          cap:
                            type: string
                          duration:
                            type: string
                          factor:
                            anyOf:
                            - type: integer
                            - type: string
                            x-kubernetes-int-or-string: true
                          maxDuration:
                            type: string
                        type: object
                      expression:
                        type: string
                      limit:
                        anyOf:
                        - type: integer
                        - type: string
                        x-kubernetes-int-or-string: true
                      retryPolicy:
                        enum:
                        - Always
                        - OnFailure
                        - OnError
                        - OnTransientError
                        type: string
                    type: object
                  schedulerName:
                    type: string
                  script:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      command:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                  x-kubernetes-map-type: atomic
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                  x-kubernetes-map-type: atomic
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - name
                        x-kubernetes-list-type: map
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          stopSignal:
                            type: string
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      resizePolicy:
                        items:
                          properties:
                            resourceName:
                              type: string
                            restartPolicy:
                              type: string
                          required:
                          - resourceName
                          - restartPolicy
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      resources:
                        properties:
                          claims:
                            items:
                              properties:
                                name:
                                  type: string
                                request:
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      restartPolicy:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          appArmorProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              drop:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      source:
                        type: string
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - devicePath
                        x-kubernetes-list-type: map
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - mountPath
                        x-kubernetes-list-type: map
                      workingDir:
                        type: string
                    type: object
                  securityContext:
                    properties:
                      appArmorProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      fsGroup:
                        format: int64
                        type: integer
                      fsGroupChangePolicy:
                        type: string
                      runAsGroup:
                        format: int64
                        type: integer
                      runAsNonRoot:
                        type: boolean
                      runAsUser:
                        format: int64
                        type: integer
                      seLinuxChangePolicy:
                        type: string
                      seLinuxOptions:
                        properties:
                          level:
                            type: string
                          role:
                            type: string
                          type:
                            type: string
                          user:
                            type: string
                        type: object
                      seccompProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      supplementalGroups:
                        items:
                          format: int64
                          type: integer
                        type: array
                        x-kubernetes-list-type: atomic
                      supplementalGroupsPolicy:
                        type: string
                      sysctls:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      windowsOptions:
                        properties:
                          gmsaCredentialSpec:
                            type: string
                          gmsaCredentialSpecName:
                            type: string
                          hostProcess:
                            type: boolean
                          runAsUserName:
                            type: string
                        type: object
                    type: object
                  serviceAccountName:
                    type: string
                  sidecars:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              type: string
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        mirrorVolumeMounts:
                          type: boolean
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          items:
                            properties:
                              resourceName:
                                type: string
                              restartPolicy:
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          properties:
                            claims:
                              items:
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        restartPolicy:
                          type: string
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  steps:
                    items:
                      items:
                        properties:
                          arguments:
                            properties:
                              artifacts:
                                items:
                                  properties:
                                    archive:
                                      properties:
                                        none:
                                          type: object
                                        tar:
                                          properties:
                                            compressionLevel:
                                              format: int32
                                              type: integer
                                          type: object
                                        zip:
                                          type: object
                                      type: object
                                    archiveLogs:
                                      type: boolean
                                    artifactGC:
                                      properties:
                                        podMetadata:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        serviceAccountName:
                                          type: string
                                        strategy:
                                          enum:
                                          - ''
                                          - OnWorkflowCompletion
                                          - OnWorkflowDeletion
                                          - Never
                                          type: string
                                      type: object
                                    artifactory:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        url:
                                          type: string
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - url
                                      type: object
                                    azure:
                                      properties:
                                        accountKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        blob:
                                          type: string
                                        container:
                                          type: string
                                        endpoint:
                                          type: string
                                        useSDKCreds:
                                          type: boolean
                                      required:
                                      - blob
                                      - container
                                      - endpoint
                                      type: object
                                    deleted:
                                      type: boolean
                                    from:
                                      type: string
                                    fromExpression:
                                      type: string
                                    gcs:
                                      properties:
                                        bucket:
                                          type: string
                                        key:
                                          type: string
                                        serviceAccountKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - key
                                      type: object
                                    git:
                                      properties:
                                        branch:
                                          type: string
                                        depth:
                                          format: int64
                                          type: integer
                                        disableSubmodules:
                                          type: boolean
                                        fetch:
                                          items:
                                            type: string
                                          type: array
                                        insecureIgnoreHostKey:
                                          type: boolean
                                        insecureSkipTLS:
                                          type: boolean
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        repo:
                                          type: string
                                        revision:
                                          type: string
                                        singleBranch:
                                          type: boolean
                                        sshPrivateKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - repo
                                      type: object
                                    globalName:
                                      type: string
                                    hdfs:
                                      properties:
                                        addresses:
                                          items:
                                            type: string
                                          type: array
                                        dataTransferProtection:
                                          type: string
                                        force:
                                          type: boolean
                                        hdfsUser:
                                          type: string
                                        krbCCacheSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbConfigConfigMap:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbKeytabSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbRealm:
                                          type: string
                                        krbServicePrincipalName:
                                          type: string
                                        krbUsername:
                                          type: string
                                        path:
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    http:
                                      properties:
                                        auth:
                                          properties:
                                            basicAuth:
                                              properties:
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            clientCert:
                                              properties:
                                                clientCertSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            oauth2:
                                              properties:
                                                clientIDSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientSecretSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                endpointParams:
                                                  items:
                                                    properties:
                                                      key:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - key
                                                    type: object
                                                  type: array
                                                scopes:
                                                  items:
                                                    type: string
                                                  type: array
                                                tokenURLSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                          type: object
                                        headers:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        url:
                                          type: string
                                      required:
                                      - url
                                      type: object
                                    mode:
                                      format: int32
                                      maximum: 511
                                      minimum: 0
                                      type: integer
                                    name:
                                      pattern: ^[-a-zA-Z0-9_{}.]+$
                                      type: string
                                    optional:
                                      type: boolean
                                    oss:
                                      properties:
                                        accessKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          type: string
                                        createBucketIfNotPresent:
                                          type: boolean
                                        endpoint:
                                          type: string
                                        key:
                                          type: string
                                        lifecycleRule:
                                          properties:
                                            markDeletionAfterDays:
                                              format: int32
                                              type: integer
                                            markInfrequentAccessAfterDays:
                                              format: int32
                                              type: integer
                                          type: object
                                        secretKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        securityToken:
                                          type: string
                                        useSDKCreds:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    path:
                                      type: string
                                    plugin:
                                      properties:
                                        configuration:
                                          type: string
                                        connectionTimeoutSeconds:
                                          format: int32
                                          type: integer
                                        key:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - key
                                      type: object
                                    raw:
                                      properties:
                                        data:
                                          type: string
                                      required:
                                      - data
                                      type: object
                                    recurseMode:
                                      type: boolean
                                    s3:
                                      properties:
                                        accessKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          type: string
                                        caSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        createBucketIfNotPresent:
                                          properties:
                                            objectLocking:
                                              type: boolean
                                          type: object
                                        encryptionOptions:
                                          properties:
                                            enableEncryption:
                                              type: boolean
                                            kmsEncryptionContext:
                                              type: string
                                            kmsKeyId:
                                              type: string
                                            serverSideCustomerKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        endpoint:
                                          type: string
                                        insecure:
                                          type: boolean
                                        key:
                                          type: string
                                        region:
                                          type: string
                                        roleARN:
                                          type: string
                                        secretKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        sessionTokenSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        useSDKCreds:
                                          type: boolean
                                      type: object
                                    subPath:
                                      type: string
                                  required:
                                  - name
                                  type: object
                                  x-kubernetes-validations:
                                  - message: at most one artifact location can be specified
                                    rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                type: array
                              parameters:
                                items:
                                  properties:
                                    default:
                                      type: string
                                    description:
                                      type: string
                                    enum:
                                      items:
                                        type: string
                                      minItems: 1
                                      type: array
                                    globalName:
                                      type: string
                                    name:
                                      pattern: ^[-a-zA-Z0-9_]+$
                                      type: string
                                    value:
                                      type: string
                                    valueFrom:
                                      properties:
                                        configMapKeyRef:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        default:
                                          type: string
                                        event:
                                          type: string
                                        expression:
                                          type: string
                                        jqFilter:
                                          type: string
                                        jsonPath:
                                          type: string
                                        parameter:
                                          type: string
                                        path:
                                          type: string
                                        supplied:
                                          type: object
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                            type: object
                          continueOn:
                            properties:
                              error:
                                type: boolean
                              failed:
                                type: boolean
                            type: object
                          hooks:
                            additionalProperties:
                              properties:
                                arguments:
                                  properties:
                                    artifacts:
                                      items:
                                        properties:
                                          archive:
                                            properties:
                                              none:
                                                type: object
                                              tar:
                                                properties:
                                                  compressionLevel:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              zip:
                                                type: object
                                            type: object
                                          archiveLogs:
                                            type: boolean
                                          artifactGC:
                                            properties:
                                              podMetadata:
                                                properties:
                                                  annotations:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                  labels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                              serviceAccountName:
                                                type: string
                                              strategy:
                                                enum:
                                                - ''
                                                - OnWorkflowCompletion
                                                - OnWorkflowDeletion
                                                - Never
                                                type: string
                                            type: object
                                          artifactory:
                                            properties:
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              url:
                                                type: string
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - url
                                            type: object
                                          azure:
                                            properties:
                                              accountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              blob:
                                                type: string
                                              container:
                                                type: string
                                              endpoint:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - blob
                                            - container
                                            - endpoint
                                            type: object
                                          deleted:
                                            type: boolean
                                          from:
                                            type: string
                                          fromExpression:
                                            type: string
                                          gcs:
                                            properties:
                                              bucket:
                                                type: string
                                              key:
                                                type: string
                                              serviceAccountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - key
                                            type: object
                                          git:
                                            properties:
                                              branch:
                                                type: string
                                              depth:
                                                format: int64
                                                type: integer
                                              disableSubmodules:
                                                type: boolean
                                              fetch:
                                                items:
                                                  type: string
                                                type: array
                                              insecureIgnoreHostKey:
                                                type: boolean
                                              insecureSkipTLS:
                                                type: boolean
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              repo:
                                                type: string
                                              revision:
                                                type: string
                                              singleBranch:
                                                type: boolean
                                              sshPrivateKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - repo
                                            type: object
                                          globalName:
                                            type: string
                                          hdfs:
                                            properties:
                                              addresses:
                                                items:
                                                  type: string
                                                type: array
                                              dataTransferProtection:
                                                type: string
                                              force:
                                                type: boolean
                                              hdfsUser:
                                                type: string
                                              krbCCacheSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbConfigConfigMap:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbKeytabSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbRealm:
                                                type: string
                                              krbServicePrincipalName:
                                                type: string
                                              krbUsername:
                                                type: string
                                              path:
                                                type: string
                                            required:
                                            - path
                                            type: object
                                          http:
                                            properties:
                                              auth:
                                                properties:
                                                  basicAuth:
                                                    properties:
                                                      passwordSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      usernameSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  clientCert:
                                                    properties:
                                                      clientCertSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientKeySecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  oauth2:
                                                    properties:
                                                      clientIDSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientSecretSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      endpointParams:
                                                        items:
                                                          properties:
                                                            key:
                                                              type: string
                                                            value:
                                                              type: string
                                                          required:
                                                          - key
                                                          type: object
                                                        type: array
                                                      scopes:
                                                        items:
                                                          type: string
                                                        type: array
                                                      tokenURLSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                type: object
                                              headers:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              url:
                                                type: string
                                            required:
                                            - url
                                            type: object
                                          mode:
                                            format: int32
                                            maximum: 511
                                            minimum: 0
                                            type: integer
                                          name:
                                            pattern: ^[-a-zA-Z0-9_{}.]+$
                                            type: string
                                          optional:
                                            type: boolean
                                          oss:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              createBucketIfNotPresent:
                                                type: boolean
                                              endpoint:
                                                type: string
                                              key:
                                                type: string
                                              lifecycleRule:
                                                properties:
                                                  markDeletionAfterDays:
                                                    format: int32
                                                    type: integer
                                                  markInfrequentAccessAfterDays:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              securityToken:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                          path:
                                            type: string
                                          plugin:
                                            properties:
                                              configuration:
                                                type: string
                                              connectionTimeoutSeconds:
                                                format: int32
                                                type: integer
                                              key:
                                                type: string
                                              name:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          raw:
                                            properties:
                                              data:
                                                type: string
                                            required:
                                            - data
                                            type: object
                                          recurseMode:
                                            type: boolean
                                          s3:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              caSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              createBucketIfNotPresent:
                                                properties:
                                                  objectLocking:
                                                    type: boolean
                                                type: object
                                              encryptionOptions:
                                                properties:
                                                  enableEncryption:
                                                    type: boolean
                                                  kmsEncryptionContext:
                                                    type: string
                                                  kmsKeyId:
                                                    type: string
                                                  serverSideCustomerKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              endpoint:
                                                type: string
                                              insecure:
                                                type: boolean
                                              key:
                                                type: string
                                              region:
                                                type: string
                                              roleARN:
                                                type: string
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              sessionTokenSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              useSDKCreds:
                                                type: boolean
                                            type: object
                                          subPath:
                                            type: string
                                        required:
                                        - name
                                        type: object
                                        x-kubernetes-validations:
                                        - message: at most one artifact location can be specified
                                          rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                      type: array
                                    parameters:
                                      items:
                                        properties:
                                          default:
                                            type: string
                                          description:
                                            type: string
                                          enum:
                                            items:
                                              type: string
                                            minItems: 1
                                            type: array
                                          globalName:
                                            type: string
                                          name:
                                            pattern: ^[-a-zA-Z0-9_]+$
                                            type: string
                                          value:
                                            type: string
                                          valueFrom:
                                            properties:
                                              configMapKeyRef:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              default:
                                                type: string
                                              event:
                                                type: string
                                              expression:
                                                type: string
                                              jqFilter:
                                                type: string
                                              jsonPath:
                                                type: string
                                              parameter:
                                                type: string
                                              path:
                                                type: string
                                              supplied:
                                                type: object
                                            type: object
                                        required:
                                        - name
                                        type: object
                                      type: array
                                  type: object
                                expression:
                                  type: string
                                template:
                                  type: string
                                templateRef:
                                  properties:
                                    clusterScope:
                                      type: boolean
                                    name:
                                      type: string
                                    template:
                                      type: string
                                  type: object
                              type: object
                            type: object
                          inline:
                            x-kubernetes-preserve-unknown-fields: true
                          name:
                            maxLength: 128
                            pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                            type: string
                          onExit:
                            type: string
                          template:
                            type: string
                          templateRef:
                            properties:
                              clusterScope:
                                type: boolean
                              name:
                                type: string
                              template:
                                type: string
                            type: object
                          when:
                            type: string
                          withItems:
                            x-kubernetes-preserve-unknown-fields: true
                          withParam:
                            type: string
                          withSequence:
                            properties:
                              count:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              end:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              format:
                                type: string
                              start:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                            x-kubernetes-validations:
                            - message: only one of count or end can be defined
                              rule: '!(has(self.count) && has(self.end))'
                        type: object
                      type: array
                    minItems: 1
                    type: array
                  suspend:
                    properties:
                      duration:
                        type: string
                    type: object
                  synchronization:
                    properties:
                      mutexes:
                        items:
                          properties:
                            database:
                              type: boolean
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        type: array
                      semaphores:
                        items:
                          properties:
                            configMapKeyRef:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            database:
                              properties:
                                key:
                                  type: string
                              required:
                              - key
                              type: object
                            namespace:
                              type: string
                          type: object
                        type: array
                    type: object
                  timeout:
                    type: string
                  tolerations:
                    items:
                      properties:
                        effect:
                          type: string
                        key:
                          type: string
                        operator:
                          type: string
                        tolerationSeconds:
                          format: int64
                          type: integer
                        value:
                          type: string
                      type: object
                    type: array
                  volumes:
                    items:
                      properties:
                        awsElasticBlockStore:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        azureDisk:
                          properties:
                            cachingMode:
                              type: string
                            diskName:
                              type: string
                            diskURI:
                              type: string
                            fsType:
                              default: ext4
                              type: string
                            kind:
                              type: string
                            readOnly:
                              default: false
                              type: boolean
                          required:
                          - diskName
                          - diskURI
                          type: object
                        azureFile:
                          properties:
                            readOnly:
                              type: boolean
                            secretName:
                              type: string
                            shareName:
                              type: string
                          required:
                          - secretName
                          - shareName
                          type: object
                        cephfs:
                          properties:
                            monitors:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            secretFile:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            user:
                              type: string
                          required:
                          - monitors
                          type: object
                        cinder:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        configMap:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            name:
                              default: ''
                              type: string
                            optional:
                              type: boolean
                          type: object
                          x-kubernetes-map-type: atomic
                        csi:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            nodePublishSecretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            readOnly:
                              type: boolean
                            volumeAttributes:
                              additionalProperties:
                                type: string
                              type: object
                          required:
                          - driver
                          type: object
                        downwardAPI:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        emptyDir:
                          properties:
                            medium:
                              type: string
                            sizeLimit:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                          type: object
                        ephemeral:
                          properties:
                            volumeClaimTemplate:
                              properties:
                                metadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    finalizers:
                                      items:
                                        type: string
                                      type: array
                                    generateName:
                                      type: string
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  type: object
                                spec:
                                  properties:
                                    accessModes:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    dataSource:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    dataSourceRef:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                        namespace:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    resources:
                                      properties:
                                        limits:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          type: object
                                        requests:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          type: object
                                      type: object
                                    selector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    storageClassName:
                                      type: string
                                    volumeAttributesClassName:
                                      type: string
                                    volumeMode:
                                      type: string
                                    volumeName:
                                      type: string
                                  type: object
                              required:
                              - spec
                              type: object
                          type: object
                        fc:
                          properties:
                            fsType:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            targetWWNs:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            wwids:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        flexVolume:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            options:
                              additionalProperties:
                                type: string
                              type: object
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - driver
                          type: object
                        flocker:
                          properties:
                            datasetName:
                              type: string
                            datasetUUID:
                              type: string
                          type: object
                        gcePersistentDisk:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            pdName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - pdName
                          type: object
                        gitRepo:
                          properties:
                            directory:
                              type: string
                            repository:
                              type: string
                            revision:
                              type: string
                          required:
                          - repository
                          type: object
                        glusterfs:
                          properties:
                            endpoints:
                              type: string
                            path:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - endpoints
                          - path
                          type: object
                        hostPath:
                          properties:
                            path:
                              type: string
                            type:
                              type: string
                          required:
                          - path
                          type: object
                        image:
                          properties:
                            pullPolicy:
                              type: string
                            reference:
                              type: string
                          type: object
                        iscsi:
                          properties:
                            chapAuthDiscovery:
                              type: boolean
                            chapAuthSession:
                              type: boolean
                            fsType:
                              type: string
                            initiatorName:
                              type: string
                            iqn:
                              type: string
                            iscsiInterface:
                              default: default
                              type: string
                            lun:
                              format: int32
                              type: integer
                            portals:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            targetPortal:
                              type: string
                          required:
                          - iqn
                          - lun
                          - targetPortal
                          type: object
                        name:
                          type: string
                        nfs:
                          properties:
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            server:
                              type: string
                          required:
                          - path
                          - server
                          type: object
                        persistentVolumeClaim:
                          properties:
                            claimName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - claimName
                          type: object
                        photonPersistentDisk:
                          properties:
                            fsType:
                              type: string
                            pdID:
                              type: string
                          required:
                          - pdID
                          type: object
                        portworxVolume:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        projected:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            sources:
                              items:
                                properties:
                                  clusterTrustBundle:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                      path:
                                        type: string
                                      signerName:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  configMap:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  downwardAPI:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  secret:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  serviceAccountToken:
                                    properties:
                                      audience:
                                        type: string
                                      expirationSeconds:
                                        format: int64
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        quobyte:
                          properties:
                            group:
                              type: string
                            readOnly:
                              type: boolean
                            registry:
                              type: string
                            tenant:
                              type: string
                            user:
                              type: string
                            volume:
                              type: string
                          required:
                          - registry
                          - volume
                          type: object
                        rbd:
                          properties:
                            fsType:
                              type: string
                            image:
                              type: string
                            keyring:
                              default: /etc/ceph/keyring
                              type: string
                            monitors:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            pool:
                              default: rbd
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            user:
                              default: admin
                              type: string
                          required:
                          - image
                          - monitors
                          type: object
                        scaleIO:
                          properties:
                            fsType:
                              default: xfs
                              type: string
                            gateway:
                              type: string
                            protectionDomain:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            sslEnabled:
                              type: boolean
                            storageMode:
                              default: ThinProvisioned
                              type: string
                            storagePool:
                              type: string
                            system:
                              type: string
                            volumeName:
                              type: string
                          required:
                          - gateway
                          - secretRef
                          - system
                          type: object
                        secret:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            optional:
                              type: boolean
                            secretName:
                              type: string
                          type: object
                        storageos:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            volumeName:
                              type: string
                            volumeNamespace:
                              type: string
                          type: object
                        vsphereVolume:
                          properties:
                            fsType:
                              type: string
                            storagePolicyID:
                              type: string
                            storagePolicyName:
                              type: string
                            volumePath:
                              type: string
                          required:
                          - volumePath
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
              templates:
                description: 'Templates is a list of workflow templates used in a workflow

                  MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                items:
                  description: Template is a reusable and composable unit of execution in a workflow
                  properties:
                    activeDeadlineSeconds:
                      anyOf:
                      - type: integer
                      - type: string
                      description: 'Optional duration in seconds relative to the StartTime that the pod may be active on a node

                        before the system actively tries to terminate the pod; value must be positive integer

                        This field is only applicable to container and script templates.'
                      x-kubernetes-int-or-string: true
                    affinity:
                      description: 'Affinity sets the pod''s scheduling constraints

                        Overrides the affinity set at the workflow level (if any)'
                      properties:
                        nodeAffinity:
                          description: Describes node affinity scheduling rules for the pod.
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node matches the corresponding matchExpressions; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: 'An empty preferred scheduling term matches all objects with implicit weight 0

                                  (i.e. it''s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).'
                                properties:
                                  preference:
                                    description: A node selector term, associated with the corresponding weight.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements by node's labels.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        description: A list of node selector requirements by node's fields.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  weight:
                                    description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                                    format: int32
                                    type: integer
                                required:
                                - preference
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to an update), the system

                                may or may not try to eventually evict the pod from its node.'
                              properties:
                                nodeSelectorTerms:
                                  description: Required. A list of node selector terms. The terms are ORed.
                                  items:
                                    description: 'A null or empty node selector term matches no objects. The requirements of

                                      them are ANDed.

                                      The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.'
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements by node's labels.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        description: A list of node selector requirements by node's fields.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                              - nodeSelectorTerms
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        podAffinity:
                          description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: 'A label query over a set of resources, in this case pods.

                                          If it''s null, this PodAffinityTerm matches with no Pods.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                          Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                          Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        description: 'A label query over the set of namespaces that the term applies to.

                                          The term is applied to the union of the namespaces selected by this field

                                          and the ones listed in the namespaces field.

                                          null selector and null or empty namespaces list means "this pod''s namespace".

                                          An empty selector ({}) matches all namespaces.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        description: 'namespaces specifies a static list of namespace names that the term applies to.

                                          The term is applied to the union of the namespaces listed in this field

                                          and the ones selected by namespaceSelector.

                                          null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                          the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                          whose value of the label with key topologyKey matches that of any node on which any of the

                                          selected pods is running.

                                          Empty topologyKey is not allowed.'
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: 'weight associated with matching the corresponding podAffinityTerm,

                                      in the range 1-100.'
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to a pod label update), the

                                system may or may not try to eventually evict the pod from its node.

                                When there are multiple elements, the lists of nodes corresponding to each

                                podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                              items:
                                description: 'Defines a set of pods (namely those matching the labelSelector

                                  relative to the given namespace(s)) that this pod should be

                                  co-located (affinity) or not co-located (anti-affinity) with,

                                  where co-located is defined as running on a node whose value of

                                  the label with key <topologyKey> matches that of any node on which

                                  a pod of the set of pods is running'
                                properties:
                                  labelSelector:
                                    description: 'A label query over a set of resources, in this case pods.

                                      If it''s null, this PodAffinityTerm matches with no Pods.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                      Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                      Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    description: 'A label query over the set of namespaces that the term applies to.

                                      The term is applied to the union of the namespaces selected by this field

                                      and the ones listed in the namespaces field.

                                      null selector and null or empty namespaces list means "this pod''s namespace".

                                      An empty selector ({}) matches all namespaces.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    description: 'namespaces specifies a static list of namespace names that the term applies to.

                                      The term is applied to the union of the namespaces listed in this field

                                      and the ones selected by namespaceSelector.

                                      null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                      the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                      whose value of the label with key topologyKey matches that of any node on which any of the

                                      selected pods is running.

                                      Empty topologyKey is not allowed.'
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        podAntiAffinity:
                          description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the anti-affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling anti-affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: 'A label query over a set of resources, in this case pods.

                                          If it''s null, this PodAffinityTerm matches with no Pods.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                          Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                          Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        description: 'A label query over the set of namespaces that the term applies to.

                                          The term is applied to the union of the namespaces selected by this field

                                          and the ones listed in the namespaces field.

                                          null selector and null or empty namespaces list means "this pod''s namespace".

                                          An empty selector ({}) matches all namespaces.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        description: 'namespaces specifies a static list of namespace names that the term applies to.

                                          The term is applied to the union of the namespaces listed in this field

                                          and the ones selected by namespaceSelector.

                                          null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                          the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                          whose value of the label with key topologyKey matches that of any node on which any of the

                                          selected pods is running.

                                          Empty topologyKey is not allowed.'
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: 'weight associated with matching the corresponding podAffinityTerm,

                                      in the range 1-100.'
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the anti-affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the anti-affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to a pod label update), the

                                system may or may not try to eventually evict the pod from its node.

                                When there are multiple elements, the lists of nodes corresponding to each

                                podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                              items:
                                description: 'Defines a set of pods (namely those matching the labelSelector

                                  relative to the given namespace(s)) that this pod should be

                                  co-located (affinity) or not co-located (anti-affinity) with,

                                  where co-located is defined as running on a node whose value of

                                  the label with key <topologyKey> matches that of any node on which

                                  a pod of the set of pods is running'
                                properties:
                                  labelSelector:
                                    description: 'A label query over a set of resources, in this case pods.

                                      If it''s null, this PodAffinityTerm matches with no Pods.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                      Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                      Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    description: 'A label query over the set of namespaces that the term applies to.

                                      The term is applied to the union of the namespaces selected by this field

                                      and the ones listed in the namespaces field.

                                      null selector and null or empty namespaces list means "this pod''s namespace".

                                      An empty selector ({}) matches all namespaces.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    description: 'namespaces specifies a static list of namespace names that the term applies to.

                                      The term is applied to the union of the namespaces listed in this field

                                      and the ones selected by namespaceSelector.

                                      null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                      the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                      whose value of the label with key topologyKey matches that of any node on which any of the

                                      selected pods is running.

                                      Empty topologyKey is not allowed.'
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                      type: object
                    annotations:
                      additionalProperties:
                        type: string
                      description: Annotations is a list of annotations to add to the template at runtime
                      type: object
                    archiveLocation:
                      description: 'Location in which all files related to the step will be stored (logs, artifacts, etc...).

                        Can be overridden by individual items in Outputs. If omitted, will use the default

                        artifact repository location configured in the controller, appended with the

                        <workflowname>/<nodename> in the key.'
                      properties:
                        archiveLogs:
                          description: ArchiveLogs indicates if the container logs should be archived
                          type: boolean
                        artifactory:
                          description: Artifactory contains artifactory artifact location details
                          properties:
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              description: URL of the artifact
                              type: string
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          description: Azure contains Azure Storage artifact location details
                          properties:
                            accountKeySecret:
                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                              type: string
                            container:
                              description: Container is the container where resources will be stored
                              type: string
                            endpoint:
                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        gcs:
                          description: GCS contains GCS artifact location details
                          properties:
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            serviceAccountKeySecret:
                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          description: Git contains git artifact location details
                          properties:
                            branch:
                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                              type: string
                            depth:
                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                number of commits from the branch tip'
                              format: int64
                              type: integer
                            disableSubmodules:
                              description: DisableSubmodules disables submodules during git clone
                              type: boolean
                            fetch:
                              description: Fetch specifies a number of refs that should be fetched before checkout
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                              type: boolean
                            insecureSkipTLS:
                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                              type: boolean
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              description: Repo is the git repository
                              type: string
                            revision:
                              description: Revision is the git commit, tag, branch to checkout
                              type: string
                            singleBranch:
                              description: SingleBranch enables single branch clone, using the `branch` parameter
                              type: boolean
                            sshPrivateKeySecret:
                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        hdfs:
                          description: HDFS contains HDFS artifact location details
                          properties:
                            addresses:
                              description: Addresses is accessible addresses of HDFS name nodes
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                              type: string
                            force:
                              description: Force copies a file forcibly even if it exists
                              type: boolean
                            hdfsUser:
                              description: 'HDFSUser is the user to access HDFS file system.

                                It is ignored if either ccache or keytab is used.'
                              type: string
                            krbCCacheSecret:
                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                It must be set if either ccache or keytab is used.'
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            krbServicePrincipalName:
                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                It must be set if either ccache or keytab is used.'
                              type: string
                            krbUsername:
                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            path:
                              description: Path is a file path in HDFS
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          description: HTTP contains HTTP artifact location details
                          properties:
                            auth:
                              description: Auth contains information for client authentication
                              properties:
                                basicAuth:
                                  description: BasicAuth describes the secret selectors required for basic authentication
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                  properties:
                                    clientCertSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                  properties:
                                    clientIDSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                        properties:
                                          key:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                              items:
                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                properties:
                                  name:
                                    description: Name is the header name
                                    type: string
                                  value:
                                    description: Value is the literal value to use for the header
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              description: URL of the artifact
                              type: string
                          required:
                          - url
                          type: object
                        oss:
                          description: OSS contains OSS artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                              type: boolean
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            lifecycleRule:
                              description: LifecycleRule specifies how to manage bucket's lifecycle
                              properties:
                                markDeletionAfterDays:
                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - key
                          type: object
                        plugin:
                          description: Plugin contains plugin artifact location details
                          properties:
                            configuration:
                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                              type: string
                            connectionTimeoutSeconds:
                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                              format: int32
                              type: integer
                            key:
                              description: Key is the path in the artifact repository where the artifact resides
                              type: string
                            name:
                              description: Name is the name of the artifact driver plugin
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          description: Raw contains raw artifact location details
                          properties:
                            data:
                              description: Data is the string contents of the artifact
                              type: string
                          required:
                          - data
                          type: object
                        s3:
                          description: S3 contains S3 artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            caSecret:
                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                              properties:
                                objectLocking:
                                  description: ObjectLocking Enable object locking
                                  type: boolean
                              type: object
                            encryptionOptions:
                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                              properties:
                                enableEncryption:
                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                  type: boolean
                                kmsEncryptionContext:
                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                  type: string
                                kmsKeyId:
                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                  type: string
                                serverSideCustomerKeySecret:
                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            insecure:
                              description: Insecure will connect to the service with TLS
                              type: boolean
                            key:
                              description: Key is the key in the bucket where the artifact resides
                              type: string
                            region:
                              description: Region contains the optional bucket region
                              type: string
                            roleARN:
                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                              type: string
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          type: object
                      type: object
                      x-kubernetes-validations:
                      - message: at most one artifact location can be specified
                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                    automountServiceAccountToken:
                      description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods.

                        ServiceAccountName of ExecutorConfig must be specified if this value is false.'
                      type: boolean
                    container:
                      description: Container is the main container image to run in the pod
                      properties:
                        args:
                          description: 'Arguments to the entrypoint.

                            The container image''s CMD is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          description: 'Entrypoint array. Not executed within a shell.

                            The container image''s ENTRYPOINT is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          description: 'List of environment variables to set in the container.

                            Cannot be updated.'
                          items:
                            description: EnvVar represents an environment variable present in a Container.
                            properties:
                              name:
                                description: Name of the environment variable. Must be a C_IDENTIFIER.
                                type: string
                              value:
                                description: 'Variable references $(VAR_NAME) are expanded

                                  using the previously defined environment variables in the container and

                                  any service environment variables. If a variable cannot be resolved,

                                  the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                  "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                  Escaped references will never be expanded, regardless of whether the variable

                                  exists or not.

                                  Defaults to "".'
                                type: string
                              valueFrom:
                                description: Source for the environment variable's value. Cannot be used if value is not empty.
                                properties:
                                  configMapKeyRef:
                                    description: Selects a key of a ConfigMap.
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                      spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                    properties:
                                      apiVersion:
                                        description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                        type: string
                                      fieldPath:
                                        description: Path of the field to select in the specified API version.
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    description: 'Selects a resource of the container: only resources limits and requests

                                      (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                    properties:
                                      containerName:
                                        description: 'Container name: required for volumes, optional for env vars'
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Specifies the output format of the exposed resources, defaults to "1"
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        description: 'Required: resource to select'
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    description: Selects a key of a secret in the pod's namespace
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          description: 'List of sources to populate environment variables in the container.

                            The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                            will be reported as an event when the container is starting. When a key exists in multiple

                            sources, the value associated with the last source will take precedence.

                            Values defined by an Env with a duplicate key will take precedence.

                            Cannot be updated.'
                          items:
                            description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                            properties:
                              configMapRef:
                                description: The ConfigMap to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                type: string
                              secretRef:
                                description: The Secret to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the Secret must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          description: 'Container image name.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                        imagePullPolicy:
                          description: 'Image pull policy.

                            One of Always, Never, IfNotPresent.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                          type: string
                        lifecycle:
                          description: 'Actions that the management system should take in response to container lifecycle events.

                            Cannot be updated.'
                          properties:
                            postStart:
                              description: 'PostStart is called immediately after a container is created. If the handler fails,

                                the container is terminated and restarted according to its restart policy.

                                Other management of the container blocks until the hook completes.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              description: 'PreStop is called immediately before a container is terminated due to an

                                API request or management event such as liveness/startup probe failure,

                                preemption, resource contention, etc. The handler is not called if the

                                container crashes or exits. The Pod''s termination grace period countdown begins before the

                                PreStop hook is executed. Regardless of the outcome of the handler, the

                                container will eventually terminate within the Pod''s termination grace

                                period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                or until the termination grace period is reached.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                If not specified, the default is defined by the container runtime in use.

                                StopSignal can only be set for Pods with a non-empty .spec.os.name'
                              type: string
                          type: object
                        livenessProbe:
                          description: 'Periodic probe of container liveness.

                            Container will be restarted if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        name:
                          description: 'Name of the container specified as a DNS_LABEL.

                            Each container in a pod must have a unique name (DNS_LABEL).

                            Cannot be updated.'
                          type: string
                        ports:
                          description: 'List of ports to expose from the container. Not specifying a port here

                            DOES NOT prevent that port from being exposed. Any port which is

                            listening on the default "0.0.0.0" address inside a container will be

                            accessible from the network.

                            Modifying this array with strategic merge patch may corrupt the data.

                            For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                            Cannot be updated.'
                          items:
                            description: ContainerPort represents a network port in a single container.
                            properties:
                              containerPort:
                                description: 'Number of port to expose on the pod''s IP address.

                                  This must be a valid port number, 0 < x < 65536.'
                                format: int32
                                type: integer
                              hostIP:
                                description: What host IP to bind the external port to.
                                type: string
                              hostPort:
                                description: 'Number of port to expose on the host.

                                  If specified, this must be a valid port number, 0 < x < 65536.

                                  If HostNetwork is specified, this must match ContainerPort.

                                  Most containers do not need this.'
                                format: int32
                                type: integer
                              name:
                                description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                  named port in a pod must have a unique name. Name for the port that can be

                                  referred to by services.'
                                type: string
                              protocol:
                                default: TCP
                                description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                  Defaults to "TCP".'
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          description: 'Periodic probe of container service readiness.

                            Container will be removed from service endpoints if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          description: Resources resize policy for the container.
                          items:
                            description: ContainerResizePolicy represents resource resize policy for the container.
                            properties:
                              resourceName:
                                description: 'Name of the resource to which this resource resize policy applies.

                                  Supported values: cpu, memory.'
                                type: string
                              restartPolicy:
                                description: 'Restart policy to apply when specified resource is resized.

                                  If not specified, it defaults to NotRequired.'
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          description: 'Compute Resources required by this container.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                          properties:
                            claims:
                              description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                that are used by this container.


                                This is an alpha field and requires enabling the

                                DynamicResourceAllocation feature gate.


                                This field is immutable. It can only be set for containers.'
                              items:
                                description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                properties:
                                  name:
                                    description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                      the Pod where this field is used. It makes that resource available

                                      inside a container.'
                                    type: string
                                  request:
                                    description: 'Request is the name chosen for a request in the referenced claim.

                                      If empty, everything from the claim is made available, otherwise

                                      only the result of this request.'
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        restartPolicy:
                          description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                            This field may only be set for init containers, and the only allowed value is "Always".

                            For non-init containers or when this field is not specified,

                            the restart behavior is defined by the Pod''s restart policy and the container type.

                            Setting the RestartPolicy as "Always" for the init container will have the following effect:

                            this init container will be continually restarted on

                            exit until all regular containers have terminated. Once all regular

                            containers have completed, all init containers with restartPolicy "Always"

                            will be shut down. This lifecycle differs from normal init containers and

                            is often referred to as a "sidecar" container. Although this init

                            container still starts in the init container sequence, it does not wait

                            for the container to complete before proceeding to the next init

                            container. Instead, the next init container starts immediately after this

                            init container is started, or after any startupProbe has successfully

                            completed.'
                          type: string
                        securityContext:
                          description: 'SecurityContext defines the security options the container should be run with.

                            If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                            More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                          properties:
                            allowPrivilegeEscalation:
                              description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                privileges than its parent process. This bool directly controls if

                                the no_new_privs flag will be set on the container process.

                                AllowPrivilegeEscalation is true always when the container is:

                                1) run as Privileged

                                2) has CAP_SYS_ADMIN

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            appArmorProfile:
                              description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                overrides the pod''s appArmorProfile.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must match the loaded name of the profile.

                                    Must be set if and only if type is "Localhost".'
                                  type: string
                                type:
                                  description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              description: 'The capabilities to add/drop when running containers.

                                Defaults to the default set of capabilities granted by the container runtime.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                add:
                                  description: Added capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  description: Removed capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              description: 'Run container in privileged mode.

                                Processes in privileged containers are essentially equivalent to root on the host.

                                Defaults to false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            procMount:
                              description: 'procMount denotes the type of proc mount to use for the containers.

                                The default value is Default which uses the container runtime defaults for

                                readonly paths and masked paths.

                                This requires the ProcMountType feature flag to be enabled.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            readOnlyRootFilesystem:
                              description: 'Whether this container has a read-only root filesystem.

                                Default is false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            runAsGroup:
                              description: 'The GID to run the entrypoint of the container process.

                                Uses runtime default if unset.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            runAsNonRoot:
                              description: 'Indicates that the container must run as a non-root user.

                                If true, the Kubelet will validate the image at runtime to ensure that it

                                does not run as UID 0 (root) and fail to start the container if it does.

                                If unset or false, no such validation will be performed.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: boolean
                            runAsUser:
                              description: 'The UID to run the entrypoint of the container process.

                                Defaults to user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            seLinuxOptions:
                              description: 'The SELinux context to be applied to the container.

                                If unspecified, the container runtime will allocate a random SELinux context for each

                                container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                level:
                                  description: Level is SELinux level label that applies to the container.
                                  type: string
                                role:
                                  description: Role is a SELinux role label that applies to the container.
                                  type: string
                                type:
                                  description: Type is a SELinux type label that applies to the container.
                                  type: string
                                user:
                                  description: User is a SELinux user label that applies to the container.
                                  type: string
                              type: object
                            seccompProfile:
                              description: 'The seccomp options to use by this container. If seccomp options are

                                provided at both the pod & container level, the container options

                                override the pod options.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                    Must be set if type is "Localhost". Must NOT be set for any other type.'
                                  type: string
                                type:
                                  description: 'type indicates which kind of seccomp profile will be applied.

                                    Valid options are:


                                    Localhost - a profile defined in a file on the node should be used.

                                    RuntimeDefault - the container runtime default profile should be used.

                                    Unconfined - no profile should be applied.'
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              description: 'The Windows specific settings applied to all containers.

                                If unspecified, the options from the PodSecurityContext will be used.

                                If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is linux.'
                              properties:
                                gmsaCredentialSpec:
                                  description: 'GMSACredentialSpec is where the GMSA admission webhook

                                    (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                    GMSA credential spec named by the GMSACredentialSpecName field.'
                                  type: string
                                gmsaCredentialSpecName:
                                  description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                  type: string
                                hostProcess:
                                  description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                    All of a Pod''s containers must have the same effective HostProcess value

                                    (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                    In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                  type: boolean
                                runAsUserName:
                                  description: 'The UserName in Windows to run the entrypoint of the container process.

                                    Defaults to the user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext. If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          description: 'StartupProbe indicates that the Pod has successfully initialized.

                            If specified, no other probes are executed until this completes successfully.

                            If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                            This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                            when it might take a long time to load data or warm a cache, than during steady-state operation.

                            This cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                            is not set, reads from stdin in the container will always result in EOF.

                            Default is false.'
                          type: boolean
                        stdinOnce:
                          description: 'Whether the container runtime should close the stdin channel after it has been opened by

                            a single attach. When stdin is true the stdin stream will remain open across multiple attach

                            sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                            first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                            at which time stdin is closed and remains closed until the container is restarted. If this

                            flag is false, a container processes that reads from stdin will never receive an EOF.

                            Default is false'
                          type: boolean
                        terminationMessagePath:
                          description: 'Optional: Path at which the file to which the container''s termination message

                            will be written is mounted into the container''s filesystem.

                            Message written is intended to be brief final status, such as an assertion failure message.

                            Will be truncated by the node if greater than 4096 bytes. The total message length across

                            all containers will be limited to 12kb.

                            Defaults to /dev/termination-log.

                            Cannot be updated.'
                          type: string
                        terminationMessagePolicy:
                          description: 'Indicate how the termination message should be populated. File will use the contents of

                            terminationMessagePath to populate the container status message on both success and failure.

                            FallbackToLogsOnError will use the last chunk of container log output if the termination

                            message file is empty and the container exited with an error.

                            The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                            Defaults to File.

                            Cannot be updated.'
                          type: string
                        tty:
                          description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                            Default is false.'
                          type: boolean
                        volumeDevices:
                          description: volumeDevices is the list of block devices to be used by the container.
                          items:
                            description: volumeDevice describes a mapping of a raw block device within a container.
                            properties:
                              devicePath:
                                description: devicePath is the path inside of the container that the device will be mapped to.
                                type: string
                              name:
                                description: name must match the name of a persistentVolumeClaim in the pod
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          description: 'Pod volumes to mount into the container''s filesystem.

                            Cannot be updated.'
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          description: 'Container''s working directory.

                            If not specified, the container runtime''s default will be used, which

                            might be configured in the container image.

                            Cannot be updated.'
                          type: string
                      type: object
                    containerSet:
                      description: ContainerSet groups multiple containers within a single pod.
                      properties:
                        containers:
                          items:
                            properties:
                              args:
                                description: 'Arguments to the entrypoint.

                                  The container image''s CMD is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              command:
                                description: 'Entrypoint array. Not executed within a shell.

                                  The container image''s ENTRYPOINT is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              dependencies:
                                items:
                                  type: string
                                type: array
                              env:
                                description: 'List of environment variables to set in the container.

                                  Cannot be updated.'
                                items:
                                  description: EnvVar represents an environment variable present in a Container.
                                  properties:
                                    name:
                                      description: Name of the environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    value:
                                      description: 'Variable references $(VAR_NAME) are expanded

                                        using the previously defined environment variables in the container and

                                        any service environment variables. If a variable cannot be resolved,

                                        the reference in the input string will be unchanged. Double $$ are reduced

                                        to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                        "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                        Escaped references will never be expanded, regardless of whether the variable

                                        exists or not.

                                        Defaults to "".'
                                      type: string
                                    valueFrom:
                                      description: Source for the environment variable's value. Cannot be used if value is not empty.
                                      properties:
                                        configMapKeyRef:
                                          description: Selects a key of a ConfigMap.
                                          properties:
                                            key:
                                              description: The key to select.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the ConfigMap or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        fieldRef:
                                          description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                            spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        secretKeyRef:
                                          description: Selects a key of a secret in the pod's namespace
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              envFrom:
                                description: 'List of sources to populate environment variables in the container.

                                  The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                                  will be reported as an event when the container is starting. When a key exists in multiple

                                  sources, the value associated with the last source will take precedence.

                                  Values defined by an Env with a duplicate key will take precedence.

                                  Cannot be updated.'
                                items:
                                  description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                                  properties:
                                    configMapRef:
                                      description: The ConfigMap to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    prefix:
                                      description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    secretRef:
                                      description: The Secret to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              image:
                                description: 'Container image name.

                                  More info: https://kubernetes.io/docs/concepts/containers/images

                                  This field is optional to allow higher level config management to default or override

                                  container images in workload controllers like Deployments and StatefulSets.'
                                type: string
                              imagePullPolicy:
                                description: 'Image pull policy.

                                  One of Always, Never, IfNotPresent.

                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                                type: string
                              lifecycle:
                                description: 'Actions that the management system should take in response to container lifecycle events.

                                  Cannot be updated.'
                                properties:
                                  postStart:
                                    description: 'PostStart is called immediately after a container is created. If the handler fails,

                                      the container is terminated and restarted according to its restart policy.

                                      Other management of the container blocks until the hook completes.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  preStop:
                                    description: 'PreStop is called immediately before a container is terminated due to an

                                      API request or management event such as liveness/startup probe failure,

                                      preemption, resource contention, etc. The handler is not called if the

                                      container crashes or exits. The Pod''s termination grace period countdown begins before the

                                      PreStop hook is executed. Regardless of the outcome of the handler, the

                                      container will eventually terminate within the Pod''s termination grace

                                      period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                      or until the termination grace period is reached.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  stopSignal:
                                    description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                      If not specified, the default is defined by the container runtime in use.

                                      StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                    type: string
                                type: object
                              livenessProbe:
                                description: 'Periodic probe of container liveness.

                                  Container will be restarted if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              name:
                                description: 'Name of the container specified as a DNS_LABEL.

                                  Each container in a pod must have a unique name (DNS_LABEL).

                                  Cannot be updated.'
                                type: string
                              ports:
                                description: 'List of ports to expose from the container. Not specifying a port here

                                  DOES NOT prevent that port from being exposed. Any port which is

                                  listening on the default "0.0.0.0" address inside a container will be

                                  accessible from the network.

                                  Modifying this array with strategic merge patch may corrupt the data.

                                  For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                                  Cannot be updated.'
                                items:
                                  description: ContainerPort represents a network port in a single container.
                                  properties:
                                    containerPort:
                                      description: 'Number of port to expose on the pod''s IP address.

                                        This must be a valid port number, 0 < x < 65536.'
                                      format: int32
                                      type: integer
                                    hostIP:
                                      description: What host IP to bind the external port to.
                                      type: string
                                    hostPort:
                                      description: 'Number of port to expose on the host.

                                        If specified, this must be a valid port number, 0 < x < 65536.

                                        If HostNetwork is specified, this must match ContainerPort.

                                        Most containers do not need this.'
                                      format: int32
                                      type: integer
                                    name:
                                      description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                        named port in a pod must have a unique name. Name for the port that can be

                                        referred to by services.'
                                      type: string
                                    protocol:
                                      default: TCP
                                      description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                        Defaults to "TCP".'
                                      type: string
                                  required:
                                  - containerPort
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - containerPort
                                - protocol
                                x-kubernetes-list-type: map
                              readinessProbe:
                                description: 'Periodic probe of container service readiness.

                                  Container will be removed from service endpoints if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              resizePolicy:
                                description: Resources resize policy for the container.
                                items:
                                  description: ContainerResizePolicy represents resource resize policy for the container.
                                  properties:
                                    resourceName:
                                      description: 'Name of the resource to which this resource resize policy applies.

                                        Supported values: cpu, memory.'
                                      type: string
                                    restartPolicy:
                                      description: 'Restart policy to apply when specified resource is resized.

                                        If not specified, it defaults to NotRequired.'
                                      type: string
                                  required:
                                  - resourceName
                                  - restartPolicy
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              resources:
                                description: 'Compute Resources required by this container.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                properties:
                                  claims:
                                    description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                      that are used by this container.


                                      This is an alpha field and requires enabling the

                                      DynamicResourceAllocation feature gate.


                                      This field is immutable. It can only be set for containers.'
                                    items:
                                      description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                      properties:
                                        name:
                                          description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                            the Pod where this field is used. It makes that resource available

                                            inside a container.'
                                          type: string
                                        request:
                                          description: 'Request is the name chosen for a request in the referenced claim.

                                            If empty, everything from the claim is made available, otherwise

                                            only the result of this request.'
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - name
                                    x-kubernetes-list-type: map
                                  limits:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Limits describes the maximum amount of compute resources allowed.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                  requests:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Requests describes the minimum amount of compute resources required.

                                      If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                      otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                type: object
                              restartPolicy:
                                description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                                  This field may only be set for init containers, and the only allowed value is "Always".

                                  For non-init containers or when this field is not specified,

                                  the restart behavior is defined by the Pod''s restart policy and the container type.

                                  Setting the RestartPolicy as "Always" for the init container will have the following effect:

                                  this init container will be continually restarted on

                                  exit until all regular containers have terminated. Once all regular

                                  containers have completed, all init containers with restartPolicy "Always"

                                  will be shut down. This lifecycle differs from normal init containers and

                                  is often referred to as a "sidecar" container. Although this init

                                  container still starts in the init container sequence, it does not wait

                                  for the container to complete before proceeding to the next init

                                  container. Instead, the next init container starts immediately after this

                                  init container is started, or after any startupProbe has successfully

                                  completed.'
                                type: string
                              securityContext:
                                description: 'SecurityContext defines the security options the container should be run with.

                                  If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                                  More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                                properties:
                                  allowPrivilegeEscalation:
                                    description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                      privileges than its parent process. This bool directly controls if

                                      the no_new_privs flag will be set on the container process.

                                      AllowPrivilegeEscalation is true always when the container is:

                                      1) run as Privileged

                                      2) has CAP_SYS_ADMIN

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  appArmorProfile:
                                    description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                      overrides the pod''s appArmorProfile.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must match the loaded name of the profile.

                                          Must be set if and only if type is "Localhost".'
                                        type: string
                                      type:
                                        description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  capabilities:
                                    description: 'The capabilities to add/drop when running containers.

                                      Defaults to the default set of capabilities granted by the container runtime.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      add:
                                        description: Added capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      drop:
                                        description: Removed capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  privileged:
                                    description: 'Run container in privileged mode.

                                      Processes in privileged containers are essentially equivalent to root on the host.

                                      Defaults to false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  procMount:
                                    description: 'procMount denotes the type of proc mount to use for the containers.

                                      The default value is Default which uses the container runtime defaults for

                                      readonly paths and masked paths.

                                      This requires the ProcMountType feature flag to be enabled.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: string
                                  readOnlyRootFilesystem:
                                    description: 'Whether this container has a read-only root filesystem.

                                      Default is false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  runAsGroup:
                                    description: 'The GID to run the entrypoint of the container process.

                                      Uses runtime default if unset.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  runAsNonRoot:
                                    description: 'Indicates that the container must run as a non-root user.

                                      If true, the Kubelet will validate the image at runtime to ensure that it

                                      does not run as UID 0 (root) and fail to start the container if it does.

                                      If unset or false, no such validation will be performed.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: boolean
                                  runAsUser:
                                    description: 'The UID to run the entrypoint of the container process.

                                      Defaults to user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  seLinuxOptions:
                                    description: 'The SELinux context to be applied to the container.

                                      If unspecified, the container runtime will allocate a random SELinux context for each

                                      container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      level:
                                        description: Level is SELinux level label that applies to the container.
                                        type: string
                                      role:
                                        description: Role is a SELinux role label that applies to the container.
                                        type: string
                                      type:
                                        description: Type is a SELinux type label that applies to the container.
                                        type: string
                                      user:
                                        description: User is a SELinux user label that applies to the container.
                                        type: string
                                    type: object
                                  seccompProfile:
                                    description: 'The seccomp options to use by this container. If seccomp options are

                                      provided at both the pod & container level, the container options

                                      override the pod options.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                          Must be set if type is "Localhost". Must NOT be set for any other type.'
                                        type: string
                                      type:
                                        description: 'type indicates which kind of seccomp profile will be applied.

                                          Valid options are:


                                          Localhost - a profile defined in a file on the node should be used.

                                          RuntimeDefault - the container runtime default profile should be used.

                                          Unconfined - no profile should be applied.'
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  windowsOptions:
                                    description: 'The Windows specific settings applied to all containers.

                                      If unspecified, the options from the PodSecurityContext will be used.

                                      If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is linux.'
                                    properties:
                                      gmsaCredentialSpec:
                                        description: 'GMSACredentialSpec is where the GMSA admission webhook

                                          (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                          GMSA credential spec named by the GMSACredentialSpecName field.'
                                        type: string
                                      gmsaCredentialSpecName:
                                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                        type: string
                                      hostProcess:
                                        description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                          All of a Pod''s containers must have the same effective HostProcess value

                                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                          In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                        type: boolean
                                      runAsUserName:
                                        description: 'The UserName in Windows to run the entrypoint of the container process.

                                          Defaults to the user specified in image metadata if unspecified.

                                          May also be set in PodSecurityContext. If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                        type: string
                                    type: object
                                type: object
                              startupProbe:
                                description: 'StartupProbe indicates that the Pod has successfully initialized.

                                  If specified, no other probes are executed until this completes successfully.

                                  If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                                  This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                                  when it might take a long time to load data or warm a cache, than during steady-state operation.

                                  This cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              stdin:
                                description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                                  is not set, reads from stdin in the container will always result in EOF.

                                  Default is false.'
                                type: boolean
                              stdinOnce:
                                description: 'Whether the container runtime should close the stdin channel after it has been opened by

                                  a single attach. When stdin is true the stdin stream will remain open across multiple attach

                                  sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                                  first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                                  at which time stdin is closed and remains closed until the container is restarted. If this

                                  flag is false, a container processes that reads from stdin will never receive an EOF.

                                  Default is false'
                                type: boolean
                              terminationMessagePath:
                                description: 'Optional: Path at which the file to which the container''s termination message

                                  will be written is mounted into the container''s filesystem.

                                  Message written is intended to be brief final status, such as an assertion failure message.

                                  Will be truncated by the node if greater than 4096 bytes. The total message length across

                                  all containers will be limited to 12kb.

                                  Defaults to /dev/termination-log.

                                  Cannot be updated.'
                                type: string
                              terminationMessagePolicy:
                                description: 'Indicate how the termination message should be populated. File will use the contents of

                                  terminationMessagePath to populate the container status message on both success and failure.

                                  FallbackToLogsOnError will use the last chunk of container log output if the termination

                                  message file is empty and the container exited with an error.

                                  The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                                  Defaults to File.

                                  Cannot be updated.'
                                type: string
                              tty:
                                description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                                  Default is false.'
                                type: boolean
                              volumeDevices:
                                description: volumeDevices is the list of block devices to be used by the container.
                                items:
                                  description: volumeDevice describes a mapping of a raw block device within a container.
                                  properties:
                                    devicePath:
                                      description: devicePath is the path inside of the container that the device will be mapped to.
                                      type: string
                                    name:
                                      description: name must match the name of a persistentVolumeClaim in the pod
                                      type: string
                                  required:
                                  - devicePath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - devicePath
                                x-kubernetes-list-type: map
                              volumeMounts:
                                description: 'Pod volumes to mount into the container''s filesystem.

                                  Cannot be updated.'
                                items:
                                  description: VolumeMount describes a mounting of a Volume within a container.
                                  properties:
                                    mountPath:
                                      description: 'Path within the container at which the volume should be mounted.  Must

                                        not contain '':''.'
                                      type: string
                                    mountPropagation:
                                      description: 'mountPropagation determines how mounts are propagated from the host

                                        to container and the other way around.

                                        When not set, MountPropagationNone is used.

                                        This field is beta in 1.10.

                                        When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                        (which defaults to None).'
                                      type: string
                                    name:
                                      description: This must match the Name of a Volume.
                                      type: string
                                    readOnly:
                                      description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                        Defaults to false.'
                                      type: boolean
                                    recursiveReadOnly:
                                      description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                        recursively.


                                        If ReadOnly is false, this field has no meaning and must be unspecified.


                                        If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                        recursively read-only.  If this field is set to IfPossible, the mount is made

                                        recursively read-only, if it is supported by the container runtime.  If this

                                        field is set to Enabled, the mount is made recursively read-only if it is

                                        supported by the container runtime, otherwise the pod will not be started and

                                        an error will be generated to indicate the reason.


                                        If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                        None (or be unspecified, which defaults to None).


                                        If this field is not specified, it is treated as an equivalent of Disabled.'
                                      type: string
                                    subPath:
                                      description: 'Path within the volume from which the container''s volume should be mounted.

                                        Defaults to "" (volume''s root).'
                                      type: string
                                    subPathExpr:
                                      description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                        Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                        Defaults to "" (volume''s root).

                                        SubPathExpr and SubPath are mutually exclusive.'
                                      type: string
                                  required:
                                  - mountPath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - mountPath
                                x-kubernetes-list-type: map
                              workingDir:
                                description: 'Container''s working directory.

                                  If not specified, the container runtime''s default will be used, which

                                  might be configured in the container image.

                                  Cannot be updated.'
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        retryStrategy:
                          description: 'RetryStrategy describes how to retry container nodes if the container set fails.

                            Note that this works differently from the template-level `retryStrategy` as it is a process-level retry that does not create new Pods or containers.'
                          properties:
                            duration:
                              description: "Duration is the time between each retry, examples values are \"300ms\", \"1s\" or \"5m\".\nValid time units are \"ns\", \"us\" (or \"\xB5s\"), \"ms\", \"s\", \"m\", \"h\"."
                              type: string
                            retries:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'Retries is the maximum number of retry attempts for each container. It does not include the

                                first, original attempt; the maximum number of total attempts will be `retries + 1`.'
                              x-kubernetes-int-or-string: true
                          required:
                          - retries
                          type: object
                        volumeMounts:
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                      required:
                      - containers
                      type: object
                    daemon:
                      description: Daemon will allow a workflow to proceed to the next step so long as the container reaches readiness
                      type: boolean
                    dag:
                      description: DAG template subtype which runs a DAG
                      properties:
                        failFast:
                          description: 'This flag is for DAG logic. The DAG logic has a built-in "fail fast" feature to stop scheduling new steps,

                            as soon as it detects that one of the DAG nodes is failed. Then it waits until all DAG nodes are completed

                            before failing the DAG itself.

                            The FailFast flag default is true,  if set to false, it will allow a DAG to run all branches of the DAG to

                            completion (either success or failure), regardless of the failed outcomes of branches in the DAG.

                            More info and example about this feature at https://github.com/argoproj/argo-workflows/issues/1442'
                          type: boolean
                        target:
                          description: Target are one or more names of targets to execute in a DAG
                          type: string
                        tasks:
                          description: 'Tasks are a list of DAG tasks

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: 'DAGTask represents a node in the graph during DAG execution

                              Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.'
                            properties:
                              arguments:
                                description: Arguments are the parameter and artifact arguments to the template
                                properties:
                                  artifacts:
                                    description: Artifacts is the list of artifacts to pass to the template or workflow
                                    items:
                                      description: Artifact indicates an artifact to place at a specified path
                                      properties:
                                        archive:
                                          description: Archive controls how the artifact will be saved to the artifact repository.
                                          properties:
                                            none:
                                              description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                save/load the directory appropriately.'
                                              type: object
                                            tar:
                                              description: TarStrategy will tar and gzip the file or directory when saving
                                              properties:
                                                compressionLevel:
                                                  description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                    Defaults to gzip.DefaultCompression.'
                                                  format: int32
                                                  type: integer
                                              type: object
                                            zip:
                                              description: ZipStrategy will unzip zipped input artifacts
                                              type: object
                                          type: object
                                        archiveLogs:
                                          description: ArchiveLogs indicates if the container logs should be archived
                                          type: boolean
                                        artifactGC:
                                          description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                          properties:
                                            podMetadata:
                                              description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            serviceAccountName:
                                              description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                              type: string
                                            strategy:
                                              description: Strategy is the strategy to use.
                                              enum:
                                              - ''
                                              - OnWorkflowCompletion
                                              - OnWorkflowDeletion
                                              - Never
                                              type: string
                                          type: object
                                        artifactory:
                                          description: Artifactory contains artifactory artifact location details
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            url:
                                              description: URL of the artifact
                                              type: string
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - url
                                          type: object
                                        azure:
                                          description: Azure contains Azure Storage artifact location details
                                          properties:
                                            accountKeySecret:
                                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            blob:
                                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                              type: string
                                            container:
                                              description: Container is the container where resources will be stored
                                              type: string
                                            endpoint:
                                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                              type: string
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          required:
                                          - blob
                                          - container
                                          - endpoint
                                          type: object
                                        deleted:
                                          description: Has this been deleted?
                                          type: boolean
                                        from:
                                          description: From allows an artifact to reference an artifact from a previous step
                                          type: string
                                        fromExpression:
                                          description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                          type: string
                                        gcs:
                                          description: GCS contains GCS artifact location details
                                          properties:
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            key:
                                              description: Key is the path in the bucket where the artifact resides
                                              type: string
                                            serviceAccountKeySecret:
                                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - key
                                          type: object
                                        git:
                                          description: Git contains git artifact location details
                                          properties:
                                            branch:
                                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                                              type: string
                                            depth:
                                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                                number of commits from the branch tip'
                                              format: int64
                                              type: integer
                                            disableSubmodules:
                                              description: DisableSubmodules disables submodules during git clone
                                              type: boolean
                                            fetch:
                                              description: Fetch specifies a number of refs that should be fetched before checkout
                                              items:
                                                type: string
                                              type: array
                                            insecureIgnoreHostKey:
                                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                              type: boolean
                                            insecureSkipTLS:
                                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                              type: boolean
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            repo:
                                              description: Repo is the git repository
                                              type: string
                                            revision:
                                              description: Revision is the git commit, tag, branch to checkout
                                              type: string
                                            singleBranch:
                                              description: SingleBranch enables single branch clone, using the `branch` parameter
                                              type: boolean
                                            sshPrivateKeySecret:
                                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - repo
                                          type: object
                                        globalName:
                                          description: 'GlobalName exports an output artifact to the global scope, making it available as

                                            ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                          type: string
                                        hdfs:
                                          description: HDFS contains HDFS artifact location details
                                          properties:
                                            addresses:
                                              description: Addresses is accessible addresses of HDFS name nodes
                                              items:
                                                type: string
                                              type: array
                                            dataTransferProtection:
                                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                              type: string
                                            force:
                                              description: Force copies a file forcibly even if it exists
                                              type: boolean
                                            hdfsUser:
                                              description: 'HDFSUser is the user to access HDFS file system.

                                                It is ignored if either ccache or keytab is used.'
                                              type: string
                                            krbCCacheSecret:
                                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                Either ccache or keytab can be set to use Kerberos.'
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbConfigConfigMap:
                                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                It must be set if either ccache or keytab is used.'
                                              properties:
                                                key:
                                                  description: The key to select.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the ConfigMap or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbKeytabSecret:
                                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                Either ccache or keytab can be set to use Kerberos.'
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbRealm:
                                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                It must be set if keytab is used.'
                                              type: string
                                            krbServicePrincipalName:
                                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                It must be set if either ccache or keytab is used.'
                                              type: string
                                            krbUsername:
                                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                It must be set if keytab is used.'
                                              type: string
                                            path:
                                              description: Path is a file path in HDFS
                                              type: string
                                          required:
                                          - path
                                          type: object
                                        http:
                                          description: HTTP contains HTTP artifact location details
                                          properties:
                                            auth:
                                              description: Auth contains information for client authentication
                                              properties:
                                                basicAuth:
                                                  description: BasicAuth describes the secret selectors required for basic authentication
                                                  properties:
                                                    passwordSecret:
                                                      description: PasswordSecret is the secret selector to the repository password
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    usernameSecret:
                                                      description: UsernameSecret is the secret selector to the repository username
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                clientCert:
                                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                                  properties:
                                                    clientCertSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientKeySecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                oauth2:
                                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                  properties:
                                                    clientIDSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientSecretSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    endpointParams:
                                                      items:
                                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                        properties:
                                                          key:
                                                            description: Name is the header name
                                                            type: string
                                                          value:
                                                            description: Value is the literal value to use for the header
                                                            type: string
                                                        required:
                                                        - key
                                                        type: object
                                                      type: array
                                                    scopes:
                                                      items:
                                                        type: string
                                                      type: array
                                                    tokenURLSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                              type: object
                                            headers:
                                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                              items:
                                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                properties:
                                                  name:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - name
                                                - value
                                                type: object
                                              type: array
                                            url:
                                              description: URL of the artifact
                                              type: string
                                          required:
                                          - url
                                          type: object
                                        mode:
                                          description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                            Set when loading input artifacts. It is recommended to set the mode value

                                            to ensure the artifact has the expected permissions in your container.'
                                          format: int32
                                          maximum: 511
                                          minimum: 0
                                          type: integer
                                        name:
                                          description: name of the artifact. must be unique within a template's inputs/outputs.
                                          pattern: ^[-a-zA-Z0-9_{}.]+$
                                          type: string
                                        optional:
                                          description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                          type: boolean
                                        oss:
                                          description: OSS contains OSS artifact location details
                                          properties:
                                            accessKeySecret:
                                              description: AccessKeySecret is the secret selector to the bucket's access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            createBucketIfNotPresent:
                                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                              type: boolean
                                            endpoint:
                                              description: Endpoint is the hostname of the bucket endpoint
                                              type: string
                                            key:
                                              description: Key is the path in the bucket where the artifact resides
                                              type: string
                                            lifecycleRule:
                                              description: LifecycleRule specifies how to manage bucket's lifecycle
                                              properties:
                                                markDeletionAfterDays:
                                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                  format: int32
                                                  type: integer
                                                markInfrequentAccessAfterDays:
                                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                  format: int32
                                                  type: integer
                                              type: object
                                            secretKeySecret:
                                              description: SecretKeySecret is the secret selector to the bucket's secret key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            securityToken:
                                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                              type: string
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                        path:
                                          description: Path is the container path to the artifact
                                          type: string
                                        plugin:
                                          description: Plugin contains plugin artifact location details
                                          properties:
                                            configuration:
                                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                                              type: string
                                            connectionTimeoutSeconds:
                                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                              format: int32
                                              type: integer
                                            key:
                                              description: Key is the path in the artifact repository where the artifact resides
                                              type: string
                                            name:
                                              description: Name is the name of the artifact driver plugin
                                              type: string
                                          required:
                                          - key
                                          type: object
                                        raw:
                                          description: Raw contains raw artifact location details
                                          properties:
                                            data:
                                              description: Data is the string contents of the artifact
                                              type: string
                                          required:
                                          - data
                                          type: object
                                        recurseMode:
                                          description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                          type: boolean
                                        s3:
                                          description: S3 contains S3 artifact location details
                                          properties:
                                            accessKeySecret:
                                              description: AccessKeySecret is the secret selector to the bucket's access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            caSecret:
                                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            createBucketIfNotPresent:
                                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                              properties:
                                                objectLocking:
                                                  description: ObjectLocking Enable object locking
                                                  type: boolean
                                              type: object
                                            encryptionOptions:
                                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                                              properties:
                                                enableEncryption:
                                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                  type: boolean
                                                kmsEncryptionContext:
                                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                  type: string
                                                kmsKeyId:
                                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                  type: string
                                                serverSideCustomerKeySecret:
                                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            endpoint:
                                              description: Endpoint is the hostname of the bucket endpoint
                                              type: string
                                            insecure:
                                              description: Insecure will connect to the service with TLS
                                              type: boolean
                                            key:
                                              description: Key is the key in the bucket where the artifact resides
                                              type: string
                                            region:
                                              description: Region contains the optional bucket region
                                              type: string
                                            roleARN:
                                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                              type: string
                                            secretKeySecret:
                                              description: SecretKeySecret is the secret selector to the bucket's secret key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            sessionTokenSecret:
                                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          type: object
                                        subPath:
                                          description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                          type: string
                                      required:
                                      - name
                                      type: object
                                      x-kubernetes-validations:
                                      - message: at most one artifact location can be specified
                                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                    type: array
                                  parameters:
                                    description: Parameters is the list of parameters to pass to the template or workflow
                                    items:
                                      description: Parameter indicate a passed string parameter to a service template with an optional default value
                                      properties:
                                        default:
                                          description: Default is the default value to use for an input parameter if a value was not supplied
                                          type: string
                                        description:
                                          description: Description is the parameter description
                                          type: string
                                        enum:
                                          description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                          items:
                                            description: '* It''s JSON type is just string.

                                              * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                              * It will marshall back to string - marshalling is not symmetric.'
                                            type: string
                                          minItems: 1
                                          type: array
                                        globalName:
                                          description: 'GlobalName exports an output parameter to the global scope, making it available as

                                            ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                          type: string
                                        name:
                                          description: Name is the parameter name
                                          pattern: ^[-a-zA-Z0-9_]+$
                                          type: string
                                        value:
                                          description: 'Value is the literal value to use for the parameter.

                                            If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                          type: string
                                        valueFrom:
                                          description: ValueFrom is the source for the output parameter's value
                                          properties:
                                            configMapKeyRef:
                                              description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                              properties:
                                                key:
                                                  description: The key to select.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the ConfigMap or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            default:
                                              description: Default specifies a value to be used if retrieving the value from the specified source fails
                                              type: string
                                            event:
                                              description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                              type: string
                                            expression:
                                              description: Expression, if defined, is evaluated to specify the value for the parameter
                                              type: string
                                            jqFilter:
                                              description: JQFilter expression against the resource object in resource templates
                                              type: string
                                            jsonPath:
                                              description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                              type: string
                                            parameter:
                                              description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                              type: string
                                            path:
                                              description: Path in the container to retrieve an output parameter value from in container templates
                                              type: string
                                            supplied:
                                              description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                              type: object
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                type: object
                              continueOn:
                                description: 'ContinueOn makes argo to proceed with the following step even if this step fails.

                                  Errors and Failed states can be specified'
                                properties:
                                  error:
                                    type: boolean
                                  failed:
                                    type: boolean
                                type: object
                              dependencies:
                                description: Dependencies are name of other targets which this depends on
                                items:
                                  type: string
                                type: array
                              depends:
                                description: Depends are name of other targets which this depends on
                                type: string
                              hooks:
                                additionalProperties:
                                  properties:
                                    arguments:
                                      description: Arguments hold arguments to the template
                                      properties:
                                        artifacts:
                                          description: Artifacts is the list of artifacts to pass to the template or workflow
                                          items:
                                            description: Artifact indicates an artifact to place at a specified path
                                            properties:
                                              archive:
                                                description: Archive controls how the artifact will be saved to the artifact repository.
                                                properties:
                                                  none:
                                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                      save/load the directory appropriately.'
                                                    type: object
                                                  tar:
                                                    description: TarStrategy will tar and gzip the file or directory when saving
                                                    properties:
                                                      compressionLevel:
                                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                          Defaults to gzip.DefaultCompression.'
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  zip:
                                                    description: ZipStrategy will unzip zipped input artifacts
                                                    type: object
                                                type: object
                                              archiveLogs:
                                                description: ArchiveLogs indicates if the container logs should be archived
                                                type: boolean
                                              artifactGC:
                                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                                properties:
                                                  podMetadata:
                                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                    properties:
                                                      annotations:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                      labels:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                    type: object
                                                  serviceAccountName:
                                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                    type: string
                                                  strategy:
                                                    description: Strategy is the strategy to use.
                                                    enum:
                                                    - ''
                                                    - OnWorkflowCompletion
                                                    - OnWorkflowDeletion
                                                    - Never
                                                    type: string
                                                type: object
                                              artifactory:
                                                description: Artifactory contains artifactory artifact location details
                                                properties:
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  url:
                                                    description: URL of the artifact
                                                    type: string
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - url
                                                type: object
                                              azure:
                                                description: Azure contains Azure Storage artifact location details
                                                properties:
                                                  accountKeySecret:
                                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  blob:
                                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                    type: string
                                                  container:
                                                    description: Container is the container where resources will be stored
                                                    type: string
                                                  endpoint:
                                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                    type: string
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                required:
                                                - blob
                                                - container
                                                - endpoint
                                                type: object
                                              deleted:
                                                description: Has this been deleted?
                                                type: boolean
                                              from:
                                                description: From allows an artifact to reference an artifact from a previous step
                                                type: string
                                              fromExpression:
                                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                                type: string
                                              gcs:
                                                description: GCS contains GCS artifact location details
                                                properties:
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  key:
                                                    description: Key is the path in the bucket where the artifact resides
                                                    type: string
                                                  serviceAccountKeySecret:
                                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - key
                                                type: object
                                              git:
                                                description: Git contains git artifact location details
                                                properties:
                                                  branch:
                                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                    type: string
                                                  depth:
                                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                                      number of commits from the branch tip'
                                                    format: int64
                                                    type: integer
                                                  disableSubmodules:
                                                    description: DisableSubmodules disables submodules during git clone
                                                    type: boolean
                                                  fetch:
                                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                                    items:
                                                      type: string
                                                    type: array
                                                  insecureIgnoreHostKey:
                                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                    type: boolean
                                                  insecureSkipTLS:
                                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                    type: boolean
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  repo:
                                                    description: Repo is the git repository
                                                    type: string
                                                  revision:
                                                    description: Revision is the git commit, tag, branch to checkout
                                                    type: string
                                                  singleBranch:
                                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                                    type: boolean
                                                  sshPrivateKeySecret:
                                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - repo
                                                type: object
                                              globalName:
                                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                                type: string
                                              hdfs:
                                                description: HDFS contains HDFS artifact location details
                                                properties:
                                                  addresses:
                                                    description: Addresses is accessible addresses of HDFS name nodes
                                                    items:
                                                      type: string
                                                    type: array
                                                  dataTransferProtection:
                                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                    type: string
                                                  force:
                                                    description: Force copies a file forcibly even if it exists
                                                    type: boolean
                                                  hdfsUser:
                                                    description: 'HDFSUser is the user to access HDFS file system.

                                                      It is ignored if either ccache or keytab is used.'
                                                    type: string
                                                  krbCCacheSecret:
                                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                      Either ccache or keytab can be set to use Kerberos.'
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbConfigConfigMap:
                                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                      It must be set if either ccache or keytab is used.'
                                                    properties:
                                                      key:
                                                        description: The key to select.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the ConfigMap or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbKeytabSecret:
                                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                      Either ccache or keytab can be set to use Kerberos.'
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbRealm:
                                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                      It must be set if keytab is used.'
                                                    type: string
                                                  krbServicePrincipalName:
                                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                      It must be set if either ccache or keytab is used.'
                                                    type: string
                                                  krbUsername:
                                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                      It must be set if keytab is used.'
                                                    type: string
                                                  path:
                                                    description: Path is a file path in HDFS
                                                    type: string
                                                required:
                                                - path
                                                type: object
                                              http:
                                                description: HTTP contains HTTP artifact location details
                                                properties:
                                                  auth:
                                                    description: Auth contains information for client authentication
                                                    properties:
                                                      basicAuth:
                                                        description: BasicAuth describes the secret selectors required for basic authentication
                                                        properties:
                                                          passwordSecret:
                                                            description: PasswordSecret is the secret selector to the repository password
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          usernameSecret:
                                                            description: UsernameSecret is the secret selector to the repository username
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      clientCert:
                                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                                        properties:
                                                          clientCertSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientKeySecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      oauth2:
                                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                        properties:
                                                          clientIDSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientSecretSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          endpointParams:
                                                            items:
                                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                              properties:
                                                                key:
                                                                  description: Name is the header name
                                                                  type: string
                                                                value:
                                                                  description: Value is the literal value to use for the header
                                                                  type: string
                                                              required:
                                                              - key
                                                              type: object
                                                            type: array
                                                          scopes:
                                                            items:
                                                              type: string
                                                            type: array
                                                          tokenURLSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                    type: object
                                                  headers:
                                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                    items:
                                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                      properties:
                                                        name:
                                                          description: Name is the header name
                                                          type: string
                                                        value:
                                                          description: Value is the literal value to use for the header
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  url:
                                                    description: URL of the artifact
                                                    type: string
                                                required:
                                                - url
                                                type: object
                                              mode:
                                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                  Set when loading input artifacts. It is recommended to set the mode value

                                                  to ensure the artifact has the expected permissions in your container.'
                                                format: int32
                                                maximum: 511
                                                minimum: 0
                                                type: integer
                                              name:
                                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                                type: string
                                              optional:
                                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                                type: boolean
                                              oss:
                                                description: OSS contains OSS artifact location details
                                                properties:
                                                  accessKeySecret:
                                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  createBucketIfNotPresent:
                                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                    type: boolean
                                                  endpoint:
                                                    description: Endpoint is the hostname of the bucket endpoint
                                                    type: string
                                                  key:
                                                    description: Key is the path in the bucket where the artifact resides
                                                    type: string
                                                  lifecycleRule:
                                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                                    properties:
                                                      markDeletionAfterDays:
                                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                        format: int32
                                                        type: integer
                                                      markInfrequentAccessAfterDays:
                                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  secretKeySecret:
                                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  securityToken:
                                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                    type: string
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                              path:
                                                description: Path is the container path to the artifact
                                                type: string
                                              plugin:
                                                description: Plugin contains plugin artifact location details
                                                properties:
                                                  configuration:
                                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                    type: string
                                                  connectionTimeoutSeconds:
                                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                    format: int32
                                                    type: integer
                                                  key:
                                                    description: Key is the path in the artifact repository where the artifact resides
                                                    type: string
                                                  name:
                                                    description: Name is the name of the artifact driver plugin
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              raw:
                                                description: Raw contains raw artifact location details
                                                properties:
                                                  data:
                                                    description: Data is the string contents of the artifact
                                                    type: string
                                                required:
                                                - data
                                                type: object
                                              recurseMode:
                                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                                type: boolean
                                              s3:
                                                description: S3 contains S3 artifact location details
                                                properties:
                                                  accessKeySecret:
                                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  caSecret:
                                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  createBucketIfNotPresent:
                                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                    properties:
                                                      objectLocking:
                                                        description: ObjectLocking Enable object locking
                                                        type: boolean
                                                    type: object
                                                  encryptionOptions:
                                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                    properties:
                                                      enableEncryption:
                                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                        type: boolean
                                                      kmsEncryptionContext:
                                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                        type: string
                                                      kmsKeyId:
                                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                        type: string
                                                      serverSideCustomerKeySecret:
                                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  endpoint:
                                                    description: Endpoint is the hostname of the bucket endpoint
                                                    type: string
                                                  insecure:
                                                    description: Insecure will connect to the service with TLS
                                                    type: boolean
                                                  key:
                                                    description: Key is the key in the bucket where the artifact resides
                                                    type: string
                                                  region:
                                                    description: Region contains the optional bucket region
                                                    type: string
                                                  roleARN:
                                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                    type: string
                                                  secretKeySecret:
                                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  sessionTokenSecret:
                                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                type: object
                                              subPath:
                                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                                type: string
                                            required:
                                            - name
                                            type: object
                                            x-kubernetes-validations:
                                            - message: at most one artifact location can be specified
                                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                          type: array
                                        parameters:
                                          description: Parameters is the list of parameters to pass to the template or workflow
                                          items:
                                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                                            properties:
                                              default:
                                                description: Default is the default value to use for an input parameter if a value was not supplied
                                                type: string
                                              description:
                                                description: Description is the parameter description
                                                type: string
                                              enum:
                                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                                items:
                                                  description: '* It''s JSON type is just string.

                                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                    * It will marshall back to string - marshalling is not symmetric.'
                                                  type: string
                                                minItems: 1
                                                type: array
                                              globalName:
                                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                                type: string
                                              name:
                                                description: Name is the parameter name
                                                pattern: ^[-a-zA-Z0-9_]+$
                                                type: string
                                              value:
                                                description: 'Value is the literal value to use for the parameter.

                                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                                type: string
                                              valueFrom:
                                                description: ValueFrom is the source for the output parameter's value
                                                properties:
                                                  configMapKeyRef:
                                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                    properties:
                                                      key:
                                                        description: The key to select.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the ConfigMap or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  default:
                                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                    type: string
                                                  event:
                                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                    type: string
                                                  expression:
                                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                                    type: string
                                                  jqFilter:
                                                    description: JQFilter expression against the resource object in resource templates
                                                    type: string
                                                  jsonPath:
                                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                    type: string
                                                  parameter:
                                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                    type: string
                                                  path:
                                                    description: Path in the container to retrieve an output parameter value from in container templates
                                                    type: string
                                                  supplied:
                                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                    type: object
                                                type: object
                                            required:
                                            - name
                                            type: object
                                          type: array
                                      type: object
                                    expression:
                                      description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                        be retried and the retry strategy will be ignored'
                                      type: string
                                    template:
                                      description: Template is the name of the template to execute by the hook
                                      type: string
                                    templateRef:
                                      description: TemplateRef is the reference to the template resource to execute by the hook
                                      properties:
                                        clusterScope:
                                          description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                          type: boolean
                                        name:
                                          description: Name is the resource name of the template.
                                          type: string
                                        template:
                                          description: Template is the name of referred template in the resource.
                                          type: string
                                      type: object
                                  type: object
                                description: 'Hooks hold the lifecycle hook which is invoked at lifecycle of

                                  task, irrespective of the success, failure, or error status of the primary task'
                                type: object
                              inline:
                                description: 'Inline is the template. Template must be empty if this is declared (and vice-versa).

                                  Note: As mentioned in the corresponding definition in WorkflowStep, this struct is defined recursively,

                                  so we need "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                x-kubernetes-preserve-unknown-fields: true
                              name:
                                description: Name is the name of the target
                                maxLength: 128
                                pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                type: string
                              onExit:
                                description: 'OnExit is a template reference which is invoked at the end of the

                                  template, irrespective of the success, failure, or error of the

                                  primary template.

                                  DEPRECATED: Use Hooks[exit].Template instead.'
                                type: string
                              template:
                                description: Name of template to execute
                                type: string
                              templateRef:
                                description: TemplateRef is the reference to the template resource to execute.
                                properties:
                                  clusterScope:
                                    description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                    type: boolean
                                  name:
                                    description: Name is the resource name of the template.
                                    type: string
                                  template:
                                    description: Template is the name of referred template in the resource.
                                    type: string
                                type: object
                              when:
                                description: When is an expression in which the task should conditionally execute
                                type: string
                              withItems:
                                description: 'WithItems expands a task into multiple parallel tasks from the items in the list

                                  Note: The structure of WithItems is free-form, so we need

                                  "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                x-kubernetes-preserve-unknown-fields: true
                              withParam:
                                description: 'WithParam expands a task into multiple parallel tasks from the value in the parameter,

                                  which is expected to be a JSON list.'
                                type: string
                              withSequence:
                                description: WithSequence expands a task into a numeric sequence
                                properties:
                                  count:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Count is number of elements in the sequence (default: 0). Not to be used with end'
                                    x-kubernetes-int-or-string: true
                                  end:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number at which to end the sequence (default: 0). Not to be used with Count'
                                    x-kubernetes-int-or-string: true
                                  format:
                                    description: Format is a printf format string to format the value in the sequence
                                    type: string
                                  start:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number at which to start the sequence (default: 0)'
                                    x-kubernetes-int-or-string: true
                                type: object
                                x-kubernetes-validations:
                                - message: only one of count or end can be defined
                                  rule: '!(has(self.count) && has(self.end))'
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: cannot use both 'depends' and 'dependencies'
                              rule: '!has(self.depends) || !has(self.dependencies)'
                            - message: cannot use 'continueOn' when using 'depends'
                              rule: '!has(self.depends) || !has(self.continueOn)'
                            - message: task name cannot begin with a digit when using 'depends' or 'dependencies'
                              rule: '!(has(self.depends) || has(self.dependencies)) || !self.name.matches(''^[0-9]'')'
                          maxItems: 200
                          minItems: 1
                          type: array
                      required:
                      - tasks
                      type: object
                    data:
                      description: Data is a data template
                      properties:
                        source:
                          description: Source sources external data into a data template
                          properties:
                            artifactPaths:
                              description: ArtifactPaths is a data transformation that collects a list of artifact paths
                              properties:
                                archive:
                                  description: Archive controls how the artifact will be saved to the artifact repository.
                                  properties:
                                    none:
                                      description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                        files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                        save/load the directory appropriately.'
                                      type: object
                                    tar:
                                      description: TarStrategy will tar and gzip the file or directory when saving
                                      properties:
                                        compressionLevel:
                                          description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                            Defaults to gzip.DefaultCompression.'
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      description: ZipStrategy will unzip zipped input artifacts
                                      type: object
                                  type: object
                                archiveLogs:
                                  description: ArchiveLogs indicates if the container logs should be archived
                                  type: boolean
                                artifactGC:
                                  description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                  properties:
                                    podMetadata:
                                      description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                      type: string
                                    strategy:
                                      description: Strategy is the strategy to use.
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  description: Artifactory contains artifactory artifact location details
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      description: URL of the artifact
                                      type: string
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  description: Azure contains Azure Storage artifact location details
                                  properties:
                                    accountKeySecret:
                                      description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                      type: string
                                    container:
                                      description: Container is the container where resources will be stored
                                      type: string
                                    endpoint:
                                      description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  description: Has this been deleted?
                                  type: boolean
                                from:
                                  description: From allows an artifact to reference an artifact from a previous step
                                  type: string
                                fromExpression:
                                  description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                  type: string
                                gcs:
                                  description: GCS contains GCS artifact location details
                                  properties:
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    serviceAccountKeySecret:
                                      description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  description: Git contains git artifact location details
                                  properties:
                                    branch:
                                      description: Branch is the branch to fetch when `SingleBranch` is enabled
                                      type: string
                                    depth:
                                      description: 'Depth specifies clones/fetches should be shallow and include the given

                                        number of commits from the branch tip'
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      description: DisableSubmodules disables submodules during git clone
                                      type: boolean
                                    fetch:
                                      description: Fetch specifies a number of refs that should be fetched before checkout
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                      type: boolean
                                    insecureSkipTLS:
                                      description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                      type: boolean
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      description: Repo is the git repository
                                      type: string
                                    revision:
                                      description: Revision is the git commit, tag, branch to checkout
                                      type: string
                                    singleBranch:
                                      description: SingleBranch enables single branch clone, using the `branch` parameter
                                      type: boolean
                                    sshPrivateKeySecret:
                                      description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  description: 'GlobalName exports an output artifact to the global scope, making it available as

                                    ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                  type: string
                                hdfs:
                                  description: HDFS contains HDFS artifact location details
                                  properties:
                                    addresses:
                                      description: Addresses is accessible addresses of HDFS name nodes
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                        It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                      type: string
                                    force:
                                      description: Force copies a file forcibly even if it exists
                                      type: boolean
                                    hdfsUser:
                                      description: 'HDFSUser is the user to access HDFS file system.

                                        It is ignored if either ccache or keytab is used.'
                                      type: string
                                    krbCCacheSecret:
                                      description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      description: 'KrbConfig is the configmap selector for Kerberos config as string

                                        It must be set if either ccache or keytab is used.'
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    krbServicePrincipalName:
                                      description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                        It must be set if either ccache or keytab is used.'
                                      type: string
                                    krbUsername:
                                      description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    path:
                                      description: Path is a file path in HDFS
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  description: HTTP contains HTTP artifact location details
                                  properties:
                                    auth:
                                      description: Auth contains information for client authentication
                                      properties:
                                        basicAuth:
                                          description: BasicAuth describes the secret selectors required for basic authentication
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          description: ClientCertAuth holds necessary information for client authentication via certificates
                                          properties:
                                            clientCertSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                          properties:
                                            clientIDSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                properties:
                                                  key:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                      items:
                                        description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                        properties:
                                          name:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      description: URL of the artifact
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                    Set when loading input artifacts. It is recommended to set the mode value

                                    to ensure the artifact has the expected permissions in your container.'
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  description: name of the artifact. must be unique within a template's inputs/outputs.
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                  type: boolean
                                oss:
                                  description: OSS contains OSS artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                      type: boolean
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    lifecycleRule:
                                      description: LifecycleRule specifies how to manage bucket's lifecycle
                                      properties:
                                        markDeletionAfterDays:
                                          description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  description: Path is the container path to the artifact
                                  type: string
                                plugin:
                                  description: Plugin contains plugin artifact location details
                                  properties:
                                    configuration:
                                      description: Configuration is the plugin defined configuration for the artifact driver plugin
                                      type: string
                                    connectionTimeoutSeconds:
                                      description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                      format: int32
                                      type: integer
                                    key:
                                      description: Key is the path in the artifact repository where the artifact resides
                                      type: string
                                    name:
                                      description: Name is the name of the artifact driver plugin
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  description: Raw contains raw artifact location details
                                  properties:
                                    data:
                                      description: Data is the string contents of the artifact
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                  type: boolean
                                s3:
                                  description: S3 contains S3 artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    caSecret:
                                      description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                      properties:
                                        objectLocking:
                                          description: ObjectLocking Enable object locking
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      description: S3EncryptionOptions used to determine encryption options during s3 operations
                                      properties:
                                        enableEncryption:
                                          description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                          type: boolean
                                        kmsEncryptionContext:
                                          description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                          type: string
                                        kmsKeyId:
                                          description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                          type: string
                                        serverSideCustomerKeySecret:
                                          description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    insecure:
                                      description: Insecure will connect to the service with TLS
                                      type: boolean
                                    key:
                                      description: Key is the key in the bucket where the artifact resides
                                      type: string
                                    region:
                                      description: Region contains the optional bucket region
                                      type: string
                                    roleARN:
                                      description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                      type: string
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  type: object
                                subPath:
                                  description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                  type: string
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: at most one artifact location can be specified
                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: object
                        transformation:
                          description: Transformation applies a set of transformations
                          items:
                            properties:
                              expression:
                                description: Expression defines an expr expression to apply
                                type: string
                            required:
                            - expression
                            type: object
                          type: array
                      required:
                      - source
                      - transformation
                      type: object
                    executor:
                      description: Executor holds configurations of the executor container.
                      properties:
                        serviceAccountName:
                          description: ServiceAccountName specifies the service account name of the executor container.
                          type: string
                      type: object
                    failFast:
                      description: 'FailFast, if specified, will fail this template if any of its child pods has failed. This is useful for when this

                        template is expanded with `withItems`, etc.'
                      type: boolean
                    hostAliases:
                      description: HostAliases is an optional list of hosts and IPs that will be injected into the pod spec
                      items:
                        description: 'HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the

                          pod''s hosts file.'
                        properties:
                          hostnames:
                            description: Hostnames for the above IP address.
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          ip:
                            description: IP address of the host file entry.
                            type: string
                        required:
                        - ip
                        type: object
                      type: array
                    http:
                      description: HTTP makes a HTTP request
                      properties:
                        body:
                          description: Body is content of the HTTP Request
                          type: string
                        bodyFrom:
                          description: BodyFrom is  content of the HTTP Request as Bytes
                          properties:
                            bytes:
                              format: byte
                              type: string
                          type: object
                        headers:
                          description: Headers are an optional list of headers to send with HTTP requests
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  secretKeyRef:
                                    description: SecretKeySelector selects a key of a Secret.
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        insecureSkipVerify:
                          description: InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client
                          type: boolean
                        method:
                          description: Method is HTTP methods for HTTP Request
                          type: string
                        successCondition:
                          description: SuccessCondition is an expression if evaluated to true is considered successful
                          type: string
                        timeoutSeconds:
                          description: TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds
                          format: int64
                          type: integer
                        url:
                          description: URL of the HTTP Request
                          type: string
                      required:
                      - url
                      type: object
                    initContainers:
                      description: InitContainers is a list of containers which run before the main container.
                      items:
                        description: UserContainer is a container specified by a user.
                        properties:
                          args:
                            description: 'Arguments to the entrypoint.

                              The container image''s CMD is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            description: 'Entrypoint array. Not executed within a shell.

                              The container image''s ENTRYPOINT is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            description: 'List of environment variables to set in the container.

                              Cannot be updated.'
                            items:
                              description: EnvVar represents an environment variable present in a Container.
                              properties:
                                name:
                                  description: Name of the environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                value:
                                  description: 'Variable references $(VAR_NAME) are expanded

                                    using the previously defined environment variables in the container and

                                    any service environment variables. If a variable cannot be resolved,

                                    the reference in the input string will be unchanged. Double $$ are reduced

                                    to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                    "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                    Escaped references will never be expanded, regardless of whether the variable

                                    exists or not.

                                    Defaults to "".'
                                  type: string
                                valueFrom:
                                  description: Source for the environment variable's value. Cannot be used if value is not empty.
                                  properties:
                                    configMapKeyRef:
                                      description: Selects a key of a ConfigMap.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                        spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      description: Selects a key of a secret in the pod's namespace
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            description: 'List of sources to populate environment variables in the container.

                              The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                              will be reported as an event when the container is starting. When a key exists in multiple

                              sources, the value associated with the last source will take precedence.

                              Values defined by an Env with a duplicate key will take precedence.

                              Cannot be updated.'
                            items:
                              description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                              properties:
                                configMapRef:
                                  description: The ConfigMap to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                secretRef:
                                  description: The Secret to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            description: 'Container image name.

                              More info: https://kubernetes.io/docs/concepts/containers/images

                              This field is optional to allow higher level config management to default or override

                              container images in workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy.

                              One of Always, Never, IfNotPresent.

                              Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          lifecycle:
                            description: 'Actions that the management system should take in response to container lifecycle events.

                              Cannot be updated.'
                            properties:
                              postStart:
                                description: 'PostStart is called immediately after a container is created. If the handler fails,

                                  the container is terminated and restarted according to its restart policy.

                                  Other management of the container blocks until the hook completes.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                description: 'PreStop is called immediately before a container is terminated due to an

                                  API request or management event such as liveness/startup probe failure,

                                  preemption, resource contention, etc. The handler is not called if the

                                  container crashes or exits. The Pod''s termination grace period countdown begins before the

                                  PreStop hook is executed. Regardless of the outcome of the handler, the

                                  container will eventually terminate within the Pod''s termination grace

                                  period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                  or until the termination grace period is reached.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                  If not specified, the default is defined by the container runtime in use.

                                  StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                type: string
                            type: object
                          livenessProbe:
                            description: 'Periodic probe of container liveness.

                              Container will be restarted if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          mirrorVolumeMounts:
                            description: 'MirrorVolumeMounts will mount the same volumes specified in the main container

                              to the container (including artifacts), at the same mountPaths. This enables

                              dind daemon to partially see the same filesystem as the main container in

                              order to use features such as docker volume binding'
                            type: boolean
                          name:
                            description: 'Name of the container specified as a DNS_LABEL.

                              Each container in a pod must have a unique name (DNS_LABEL).

                              Cannot be updated.'
                            type: string
                          ports:
                            description: 'List of ports to expose from the container. Not specifying a port here

                              DOES NOT prevent that port from being exposed. Any port which is

                              listening on the default "0.0.0.0" address inside a container will be

                              accessible from the network.

                              Modifying this array with strategic merge patch may corrupt the data.

                              For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                              Cannot be updated.'
                            items:
                              description: ContainerPort represents a network port in a single container.
                              properties:
                                containerPort:
                                  description: 'Number of port to expose on the pod''s IP address.

                                    This must be a valid port number, 0 < x < 65536.'
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port to.
                                  type: string
                                hostPort:
                                  description: 'Number of port to expose on the host.

                                    If specified, this must be a valid port number, 0 < x < 65536.

                                    If HostNetwork is specified, this must match ContainerPort.

                                    Most containers do not need this.'
                                  format: int32
                                  type: integer
                                name:
                                  description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                    named port in a pod must have a unique name. Name for the port that can be

                                    referred to by services.'
                                  type: string
                                protocol:
                                  default: TCP
                                  description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                    Defaults to "TCP".'
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            description: 'Periodic probe of container service readiness.

                              Container will be removed from service endpoints if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            description: Resources resize policy for the container.
                            items:
                              description: ContainerResizePolicy represents resource resize policy for the container.
                              properties:
                                resourceName:
                                  description: 'Name of the resource to which this resource resize policy applies.

                                    Supported values: cpu, memory.'
                                  type: string
                                restartPolicy:
                                  description: 'Restart policy to apply when specified resource is resized.

                                    If not specified, it defaults to NotRequired.'
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            description: 'Compute Resources required by this container.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                            properties:
                              claims:
                                description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                  that are used by this container.


                                  This is an alpha field and requires enabling the

                                  DynamicResourceAllocation feature gate.


                                  This field is immutable. It can only be set for containers.'
                                items:
                                  description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                  properties:
                                    name:
                                      description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                        the Pod where this field is used. It makes that resource available

                                        inside a container.'
                                      type: string
                                    request:
                                      description: 'Request is the name chosen for a request in the referenced claim.

                                        If empty, everything from the claim is made available, otherwise

                                        only the result of this request.'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Limits describes the maximum amount of compute resources allowed.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Requests describes the minimum amount of compute resources required.

                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                            type: object
                          restartPolicy:
                            description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                              This field may only be set for init containers, and the only allowed value is "Always".

                              For non-init containers or when this field is not specified,

                              the restart behavior is defined by the Pod''s restart policy and the container type.

                              Setting the RestartPolicy as "Always" for the init container will have the following effect:

                              this init container will be continually restarted on

                              exit until all regular containers have terminated. Once all regular

                              containers have completed, all init containers with restartPolicy "Always"

                              will be shut down. This lifecycle differs from normal init containers and

                              is often referred to as a "sidecar" container. Although this init

                              container still starts in the init container sequence, it does not wait

                              for the container to complete before proceeding to the next init

                              container. Instead, the next init container starts immediately after this

                              init container is started, or after any startupProbe has successfully

                              completed.'
                            type: string
                          securityContext:
                            description: 'SecurityContext defines the security options the container should be run with.

                              If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                              More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                            properties:
                              allowPrivilegeEscalation:
                                description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                  privileges than its parent process. This bool directly controls if

                                  the no_new_privs flag will be set on the container process.

                                  AllowPrivilegeEscalation is true always when the container is:

                                  1) run as Privileged

                                  2) has CAP_SYS_ADMIN

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              appArmorProfile:
                                description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                  overrides the pod''s appArmorProfile.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must match the loaded name of the profile.

                                      Must be set if and only if type is "Localhost".'
                                    type: string
                                  type:
                                    description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                description: 'The capabilities to add/drop when running containers.

                                  Defaults to the default set of capabilities granted by the container runtime.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  add:
                                    description: Added capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    description: Removed capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                description: 'Run container in privileged mode.

                                  Processes in privileged containers are essentially equivalent to root on the host.

                                  Defaults to false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              procMount:
                                description: 'procMount denotes the type of proc mount to use for the containers.

                                  The default value is Default which uses the container runtime defaults for

                                  readonly paths and masked paths.

                                  This requires the ProcMountType feature flag to be enabled.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: string
                              readOnlyRootFilesystem:
                                description: 'Whether this container has a read-only root filesystem.

                                  Default is false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              runAsGroup:
                                description: 'The GID to run the entrypoint of the container process.

                                  Uses runtime default if unset.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              runAsNonRoot:
                                description: 'Indicates that the container must run as a non-root user.

                                  If true, the Kubelet will validate the image at runtime to ensure that it

                                  does not run as UID 0 (root) and fail to start the container if it does.

                                  If unset or false, no such validation will be performed.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                type: boolean
                              runAsUser:
                                description: 'The UID to run the entrypoint of the container process.

                                  Defaults to user specified in image metadata if unspecified.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              seLinuxOptions:
                                description: 'The SELinux context to be applied to the container.

                                  If unspecified, the container runtime will allocate a random SELinux context for each

                                  container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  level:
                                    description: Level is SELinux level label that applies to the container.
                                    type: string
                                  role:
                                    description: Role is a SELinux role label that applies to the container.
                                    type: string
                                  type:
                                    description: Type is a SELinux type label that applies to the container.
                                    type: string
                                  user:
                                    description: User is a SELinux user label that applies to the container.
                                    type: string
                                type: object
                              seccompProfile:
                                description: 'The seccomp options to use by this container. If seccomp options are

                                  provided at both the pod & container level, the container options

                                  override the pod options.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                      Must be set if type is "Localhost". Must NOT be set for any other type.'
                                    type: string
                                  type:
                                    description: 'type indicates which kind of seccomp profile will be applied.

                                      Valid options are:


                                      Localhost - a profile defined in a file on the node should be used.

                                      RuntimeDefault - the container runtime default profile should be used.

                                      Unconfined - no profile should be applied.'
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                description: 'The Windows specific settings applied to all containers.

                                  If unspecified, the options from the PodSecurityContext will be used.

                                  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is linux.'
                                properties:
                                  gmsaCredentialSpec:
                                    description: 'GMSACredentialSpec is where the GMSA admission webhook

                                      (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                      GMSA credential spec named by the GMSACredentialSpecName field.'
                                    type: string
                                  gmsaCredentialSpecName:
                                    description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                    type: string
                                  hostProcess:
                                    description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                      All of a Pod''s containers must have the same effective HostProcess value

                                      (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                      In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                    type: boolean
                                  runAsUserName:
                                    description: 'The UserName in Windows to run the entrypoint of the container process.

                                      Defaults to the user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext. If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            description: 'StartupProbe indicates that the Pod has successfully initialized.

                              If specified, no other probes are executed until this completes successfully.

                              If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                              This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                              when it might take a long time to load data or warm a cache, than during steady-state operation.

                              This cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                              is not set, reads from stdin in the container will always result in EOF.

                              Default is false.'
                            type: boolean
                          stdinOnce:
                            description: 'Whether the container runtime should close the stdin channel after it has been opened by

                              a single attach. When stdin is true the stdin stream will remain open across multiple attach

                              sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                              first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                              at which time stdin is closed and remains closed until the container is restarted. If this

                              flag is false, a container processes that reads from stdin will never receive an EOF.

                              Default is false'
                            type: boolean
                          terminationMessagePath:
                            description: 'Optional: Path at which the file to which the container''s termination message

                              will be written is mounted into the container''s filesystem.

                              Message written is intended to be brief final status, such as an assertion failure message.

                              Will be truncated by the node if greater than 4096 bytes. The total message length across

                              all containers will be limited to 12kb.

                              Defaults to /dev/termination-log.

                              Cannot be updated.'
                            type: string
                          terminationMessagePolicy:
                            description: 'Indicate how the termination message should be populated. File will use the contents of

                              terminationMessagePath to populate the container status message on both success and failure.

                              FallbackToLogsOnError will use the last chunk of container log output if the termination

                              message file is empty and the container exited with an error.

                              The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                              Defaults to File.

                              Cannot be updated.'
                            type: string
                          tty:
                            description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                              Default is false.'
                            type: boolean
                          volumeDevices:
                            description: volumeDevices is the list of block devices to be used by the container.
                            items:
                              description: volumeDevice describes a mapping of a raw block device within a container.
                              properties:
                                devicePath:
                                  description: devicePath is the path inside of the container that the device will be mapped to.
                                  type: string
                                name:
                                  description: name must match the name of a persistentVolumeClaim in the pod
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            description: 'Pod volumes to mount into the container''s filesystem.

                              Cannot be updated.'
                            items:
                              description: VolumeMount describes a mounting of a Volume within a container.
                              properties:
                                mountPath:
                                  description: 'Path within the container at which the volume should be mounted.  Must

                                    not contain '':''.'
                                  type: string
                                mountPropagation:
                                  description: 'mountPropagation determines how mounts are propagated from the host

                                    to container and the other way around.

                                    When not set, MountPropagationNone is used.

                                    This field is beta in 1.10.

                                    When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                    (which defaults to None).'
                                  type: string
                                name:
                                  description: This must match the Name of a Volume.
                                  type: string
                                readOnly:
                                  description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                    Defaults to false.'
                                  type: boolean
                                recursiveReadOnly:
                                  description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                    recursively.


                                    If ReadOnly is false, this field has no meaning and must be unspecified.


                                    If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                    recursively read-only.  If this field is set to IfPossible, the mount is made

                                    recursively read-only, if it is supported by the container runtime.  If this

                                    field is set to Enabled, the mount is made recursively read-only if it is

                                    supported by the container runtime, otherwise the pod will not be started and

                                    an error will be generated to indicate the reason.


                                    If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                    None (or be unspecified, which defaults to None).


                                    If this field is not specified, it is treated as an equivalent of Disabled.'
                                  type: string
                                subPath:
                                  description: 'Path within the volume from which the container''s volume should be mounted.

                                    Defaults to "" (volume''s root).'
                                  type: string
                                subPathExpr:
                                  description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                    Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                    Defaults to "" (volume''s root).

                                    SubPathExpr and SubPath are mutually exclusive.'
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            description: 'Container''s working directory.

                              If not specified, the container runtime''s default will be used, which

                              might be configured in the container image.

                              Cannot be updated.'
                            type: string
                        required:
                        - name
                        type: object
                      type: array
                    inputs:
                      description: Inputs describe what inputs parameters and artifacts are supplied to this template
                      properties:
                        artifacts:
                          description: Artifact are a list of artifacts passed as inputs
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        parameters:
                          description: 'Parameters are a list of parameters passed as inputs

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          maxItems: 500
                          type: array
                      type: object
                    memoize:
                      description: Memoize allows templates to use outputs generated from already executed templates
                      properties:
                        cache:
                          description: Cache sets and configures the kind of cache
                          properties:
                            configMap:
                              description: ConfigMap sets a ConfigMap-based cache
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - configMap
                          type: object
                        key:
                          description: Key is the key to use as the caching key
                          type: string
                        maxAge:
                          description: 'MaxAge is the maximum age (e.g. "180s", "24h") of an entry that is still considered valid. If an entry is older

                            than the MaxAge, it will be ignored.'
                          type: string
                      required:
                      - cache
                      - key
                      - maxAge
                      type: object
                    metadata:
                      description: Metadata sets the pods's metadata, i.e. annotations and labels
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    metrics:
                      description: Metrics are a list of metrics emitted from this template
                      properties:
                        prometheus:
                          description: 'Prometheus is a list of prometheus metrics to be emitted

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: Prometheus is a prometheus metric to be emitted
                            properties:
                              counter:
                                description: Counter is a counter metric
                                properties:
                                  value:
                                    description: Value is the value of the metric
                                    minLength: 1
                                    type: string
                                required:
                                - value
                                type: object
                              gauge:
                                description: Gauge is a gauge metric
                                properties:
                                  operation:
                                    description: Operation defines the operation to apply with value and the metrics' current value
                                    enum:
                                    - Set
                                    - Add
                                    - Sub
                                    type: string
                                  realtime:
                                    description: Realtime emits this metric in real time if applicable
                                    type: boolean
                                  value:
                                    description: 'Value is the value to be used in the operation with the metric''s current value. If no operation is set,

                                      value is the value of the metric

                                      MaxLength is an artificial limit to limit CEL validation costs - see note at top of file'
                                    maxLength: 256
                                    minLength: 1
                                    type: string
                                required:
                                - realtime
                                - value
                                type: object
                                x-kubernetes-validations:
                                - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                  rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                              help:
                                description: Help is a string that describes the metric
                                minLength: 1
                                type: string
                              histogram:
                                description: Histogram is a histogram metric
                                properties:
                                  buckets:
                                    description: Buckets is a list of bucket divisors for the histogram
                                    items:
                                      type: number
                                    type: array
                                  value:
                                    description: Value is the value of the metric
                                    minLength: 1
                                    type: string
                                required:
                                - buckets
                                - value
                                type: object
                              labels:
                                description: Labels is a list of metric labels
                                items:
                                  description: MetricLabel is a single label for a prometheus metric
                                  properties:
                                    key:
                                      pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - key
                                  - value
                                  type: object
                                type: array
                              name:
                                description: Name is the name of the metric
                                pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                type: string
                              when:
                                description: When is a conditional statement that decides when to emit the metric
                                type: string
                            required:
                            - help
                            - name
                            type: object
                          maxItems: 100
                          type: array
                      required:
                      - prometheus
                      type: object
                    name:
                      description: Name is the name of the template
                      maxLength: 128
                      pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                      type: string
                    nodeSelector:
                      additionalProperties:
                        type: string
                      description: 'NodeSelector is a selector to schedule this step of the workflow to be

                        run on the selected node(s). Overrides the selector set at the workflow level.'
                      type: object
                    outputs:
                      description: Outputs describe the parameters and artifacts that this template produces
                      properties:
                        artifacts:
                          description: Artifacts holds the list of output artifacts produced by a step
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        exitCode:
                          description: ExitCode holds the exit code of a script template
                          type: string
                        parameters:
                          description: Parameters holds the list of output parameters produced by a step
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        result:
                          description: Result holds the result (stdout) of a script or container template, or the response body of an HTTP template
                          type: string
                      type: object
                    parallelism:
                      description: 'Parallelism limits the max total parallel pods that can execute at the same time within the

                        boundaries of this template invocation. If additional steps/dag templates are invoked, the

                        pods created by those templates will not be counted towards this total.'
                      format: int64
                      minimum: 1
                      type: integer
                    plugin:
                      description: 'Plugin is a plugin template

                        Note: the structure of a plugin template is free-form, so we need to have

                        "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    podSpecPatch:
                      description: 'PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of

                        container fields which are not strings (e.g. resource limits).'
                      type: string
                    priorityClassName:
                      description: PriorityClassName to apply to workflow pods.
                      type: string
                    resource:
                      description: Resource template subtype which can run k8s resources
                      properties:
                        action:
                          description: 'Action is the action to perform to the resource.

                            Must be one of: get, create, apply, delete, replace, patch'
                          enum:
                          - get
                          - create
                          - apply
                          - delete
                          - replace
                          - patch
                          type: string
                        failureCondition:
                          description: 'FailureCondition is a label selector expression which describes the conditions

                            of the k8s resource in which the step was considered failed'
                          type: string
                        flags:
                          description: "Flags is a set of additional options passed to kubectl before submitting a resource\nI.e. to disable resource validation:\nflags: [\n\t\"--validate=false\"  # disable resource validation\n]"
                          items:
                            type: string
                          type: array
                        manifest:
                          description: Manifest contains the kubernetes manifest
                          type: string
                        manifestFrom:
                          description: ManifestFrom is the source for a single kubernetes manifest
                          properties:
                            artifact:
                              description: Artifact contains the artifact to use
                              properties:
                                archive:
                                  description: Archive controls how the artifact will be saved to the artifact repository.
                                  properties:
                                    none:
                                      description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                        files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                        save/load the directory appropriately.'
                                      type: object
                                    tar:
                                      description: TarStrategy will tar and gzip the file or directory when saving
                                      properties:
                                        compressionLevel:
                                          description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                            Defaults to gzip.DefaultCompression.'
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      description: ZipStrategy will unzip zipped input artifacts
                                      type: object
                                  type: object
                                archiveLogs:
                                  description: ArchiveLogs indicates if the container logs should be archived
                                  type: boolean
                                artifactGC:
                                  description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                  properties:
                                    podMetadata:
                                      description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                      type: string
                                    strategy:
                                      description: Strategy is the strategy to use.
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  description: Artifactory contains artifactory artifact location details
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      description: URL of the artifact
                                      type: string
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  description: Azure contains Azure Storage artifact location details
                                  properties:
                                    accountKeySecret:
                                      description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                      type: string
                                    container:
                                      description: Container is the container where resources will be stored
                                      type: string
                                    endpoint:
                                      description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  description: Has this been deleted?
                                  type: boolean
                                from:
                                  description: From allows an artifact to reference an artifact from a previous step
                                  type: string
                                fromExpression:
                                  description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                  type: string
                                gcs:
                                  description: GCS contains GCS artifact location details
                                  properties:
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    serviceAccountKeySecret:
                                      description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  description: Git contains git artifact location details
                                  properties:
                                    branch:
                                      description: Branch is the branch to fetch when `SingleBranch` is enabled
                                      type: string
                                    depth:
                                      description: 'Depth specifies clones/fetches should be shallow and include the given

                                        number of commits from the branch tip'
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      description: DisableSubmodules disables submodules during git clone
                                      type: boolean
                                    fetch:
                                      description: Fetch specifies a number of refs that should be fetched before checkout
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                      type: boolean
                                    insecureSkipTLS:
                                      description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                      type: boolean
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      description: Repo is the git repository
                                      type: string
                                    revision:
                                      description: Revision is the git commit, tag, branch to checkout
                                      type: string
                                    singleBranch:
                                      description: SingleBranch enables single branch clone, using the `branch` parameter
                                      type: boolean
                                    sshPrivateKeySecret:
                                      description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  description: 'GlobalName exports an output artifact to the global scope, making it available as

                                    ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                  type: string
                                hdfs:
                                  description: HDFS contains HDFS artifact location details
                                  properties:
                                    addresses:
                                      description: Addresses is accessible addresses of HDFS name nodes
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                        It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                      type: string
                                    force:
                                      description: Force copies a file forcibly even if it exists
                                      type: boolean
                                    hdfsUser:
                                      description: 'HDFSUser is the user to access HDFS file system.

                                        It is ignored if either ccache or keytab is used.'
                                      type: string
                                    krbCCacheSecret:
                                      description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      description: 'KrbConfig is the configmap selector for Kerberos config as string

                                        It must be set if either ccache or keytab is used.'
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    krbServicePrincipalName:
                                      description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                        It must be set if either ccache or keytab is used.'
                                      type: string
                                    krbUsername:
                                      description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    path:
                                      description: Path is a file path in HDFS
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  description: HTTP contains HTTP artifact location details
                                  properties:
                                    auth:
                                      description: Auth contains information for client authentication
                                      properties:
                                        basicAuth:
                                          description: BasicAuth describes the secret selectors required for basic authentication
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          description: ClientCertAuth holds necessary information for client authentication via certificates
                                          properties:
                                            clientCertSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                          properties:
                                            clientIDSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                properties:
                                                  key:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                      items:
                                        description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                        properties:
                                          name:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      description: URL of the artifact
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                    Set when loading input artifacts. It is recommended to set the mode value

                                    to ensure the artifact has the expected permissions in your container.'
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  description: name of the artifact. must be unique within a template's inputs/outputs.
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                  type: boolean
                                oss:
                                  description: OSS contains OSS artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                      type: boolean
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    lifecycleRule:
                                      description: LifecycleRule specifies how to manage bucket's lifecycle
                                      properties:
                                        markDeletionAfterDays:
                                          description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  description: Path is the container path to the artifact
                                  type: string
                                plugin:
                                  description: Plugin contains plugin artifact location details
                                  properties:
                                    configuration:
                                      description: Configuration is the plugin defined configuration for the artifact driver plugin
                                      type: string
                                    connectionTimeoutSeconds:
                                      description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                      format: int32
                                      type: integer
                                    key:
                                      description: Key is the path in the artifact repository where the artifact resides
                                      type: string
                                    name:
                                      description: Name is the name of the artifact driver plugin
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  description: Raw contains raw artifact location details
                                  properties:
                                    data:
                                      description: Data is the string contents of the artifact
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                  type: boolean
                                s3:
                                  description: S3 contains S3 artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    caSecret:
                                      description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                      properties:
                                        objectLocking:
                                          description: ObjectLocking Enable object locking
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      description: S3EncryptionOptions used to determine encryption options during s3 operations
                                      properties:
                                        enableEncryption:
                                          description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                          type: boolean
                                        kmsEncryptionContext:
                                          description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                          type: string
                                        kmsKeyId:
                                          description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                          type: string
                                        serverSideCustomerKeySecret:
                                          description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    insecure:
                                      description: Insecure will connect to the service with TLS
                                      type: boolean
                                    key:
                                      description: Key is the key in the bucket where the artifact resides
                                      type: string
                                    region:
                                      description: Region contains the optional bucket region
                                      type: string
                                    roleARN:
                                      description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                      type: string
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  type: object
                                subPath:
                                  description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                  type: string
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: at most one artifact location can be specified
                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          required:
                          - artifact
                          type: object
                        mergeStrategy:
                          description: 'MergeStrategy is the strategy used to merge a patch. It defaults to "strategic"

                            Must be one of: strategic, merge, json'
                          enum:
                          - strategic
                          - merge
                          - json
                          type: string
                        setOwnerReference:
                          description: SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource.
                          type: boolean
                        successCondition:
                          description: 'SuccessCondition is a label selector expression which describes the conditions

                            of the k8s resource in which it is acceptable to proceed to the following step'
                          type: string
                      required:
                      - action
                      type: object
                      x-kubernetes-validations:
                      - message: only one of manifest or manifestFrom can be specified
                        rule: (has(self.manifest) && !has(self.manifestFrom)) || (!has(self.manifest) && has(self.manifestFrom)) || (!has(self.manifest) && !has(self.manifestFrom))
                    retryStrategy:
                      description: RetryStrategy describes how to retry a template when it fails
                      properties:
                        affinity:
                          description: Affinity prevents running workflow's step on the same host
                          properties:
                            nodeAntiAffinity:
                              description: 'RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed.

                                In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".'
                              type: object
                          type: object
                        backoff:
                          description: Backoff is a backoff strategy
                          properties:
                            cap:
                              description: 'Cap is a limit on revised values of the duration parameter. If a

                                multiplication by the factor parameter would make the duration

                                exceed the cap then the duration is set to the cap'
                              type: string
                            duration:
                              description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                              type: string
                            factor:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Factor is a factor to multiply the base duration after each failed retry
                              x-kubernetes-int-or-string: true
                            maxDuration:
                              description: 'MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy.

                                It is important to note that if the workflow template includes activeDeadlineSeconds, the pod''s deadline is initially set with activeDeadlineSeconds.

                                However, when the workflow fails, the pod''s deadline is then overridden by maxDuration.

                                This ensures that the workflow does not exceed the specified maximum duration when retries are involved.'
                              type: string
                          type: object
                        expression:
                          description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                            be retried and the retry strategy will be ignored'
                          type: string
                        limit:
                          anyOf:
                          - type: integer
                          - type: string
                          description: 'Limit is the maximum number of retry attempts when retrying a container. It does not include the original

                            container; the maximum number of total attempts will be `limit + 1`.'
                          x-kubernetes-int-or-string: true
                        retryPolicy:
                          description: RetryPolicy is a policy of NodePhase statuses that will be retried
                          enum:
                          - Always
                          - OnFailure
                          - OnError
                          - OnTransientError
                          type: string
                      type: object
                    schedulerName:
                      description: 'If specified, the pod will be dispatched by specified scheduler.

                        Or it will be dispatched by workflow scope scheduler if specified.

                        If neither specified, the pod will be dispatched by default scheduler.'
                      type: string
                    script:
                      description: Script runs a portion of code against an interpreter
                      properties:
                        args:
                          description: 'Arguments to the entrypoint.

                            The container image''s CMD is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          description: 'Entrypoint array. Not executed within a shell.

                            The container image''s ENTRYPOINT is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          description: 'List of environment variables to set in the container.

                            Cannot be updated.'
                          items:
                            description: EnvVar represents an environment variable present in a Container.
                            properties:
                              name:
                                description: Name of the environment variable. Must be a C_IDENTIFIER.
                                type: string
                              value:
                                description: 'Variable references $(VAR_NAME) are expanded

                                  using the previously defined environment variables in the container and

                                  any service environment variables. If a variable cannot be resolved,

                                  the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                  "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                  Escaped references will never be expanded, regardless of whether the variable

                                  exists or not.

                                  Defaults to "".'
                                type: string
                              valueFrom:
                                description: Source for the environment variable's value. Cannot be used if value is not empty.
                                properties:
                                  configMapKeyRef:
                                    description: Selects a key of a ConfigMap.
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                      spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                    properties:
                                      apiVersion:
                                        description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                        type: string
                                      fieldPath:
                                        description: Path of the field to select in the specified API version.
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    description: 'Selects a resource of the container: only resources limits and requests

                                      (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                    properties:
                                      containerName:
                                        description: 'Container name: required for volumes, optional for env vars'
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Specifies the output format of the exposed resources, defaults to "1"
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        description: 'Required: resource to select'
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    description: Selects a key of a secret in the pod's namespace
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          description: 'List of sources to populate environment variables in the container.

                            The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                            will be reported as an event when the container is starting. When a key exists in multiple

                            sources, the value associated with the last source will take precedence.

                            Values defined by an Env with a duplicate key will take precedence.

                            Cannot be updated.'
                          items:
                            description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                            properties:
                              configMapRef:
                                description: The ConfigMap to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                type: string
                              secretRef:
                                description: The Secret to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the Secret must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          description: 'Container image name.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                        imagePullPolicy:
                          description: 'Image pull policy.

                            One of Always, Never, IfNotPresent.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                          type: string
                        lifecycle:
                          description: 'Actions that the management system should take in response to container lifecycle events.

                            Cannot be updated.'
                          properties:
                            postStart:
                              description: 'PostStart is called immediately after a container is created. If the handler fails,

                                the container is terminated and restarted according to its restart policy.

                                Other management of the container blocks until the hook completes.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              description: 'PreStop is called immediately before a container is terminated due to an

                                API request or management event such as liveness/startup probe failure,

                                preemption, resource contention, etc. The handler is not called if the

                                container crashes or exits. The Pod''s termination grace period countdown begins before the

                                PreStop hook is executed. Regardless of the outcome of the handler, the

                                container will eventually terminate within the Pod''s termination grace

                                period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                or until the termination grace period is reached.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                If not specified, the default is defined by the container runtime in use.

                                StopSignal can only be set for Pods with a non-empty .spec.os.name'
                              type: string
                          type: object
                        livenessProbe:
                          description: 'Periodic probe of container liveness.

                            Container will be restarted if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        name:
                          description: 'Name of the container specified as a DNS_LABEL.

                            Each container in a pod must have a unique name (DNS_LABEL).

                            Cannot be updated.'
                          type: string
                        ports:
                          description: 'List of ports to expose from the container. Not specifying a port here

                            DOES NOT prevent that port from being exposed. Any port which is

                            listening on the default "0.0.0.0" address inside a container will be

                            accessible from the network.

                            Modifying this array with strategic merge patch may corrupt the data.

                            For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                            Cannot be updated.'
                          items:
                            description: ContainerPort represents a network port in a single container.
                            properties:
                              containerPort:
                                description: 'Number of port to expose on the pod''s IP address.

                                  This must be a valid port number, 0 < x < 65536.'
                                format: int32
                                type: integer
                              hostIP:
                                description: What host IP to bind the external port to.
                                type: string
                              hostPort:
                                description: 'Number of port to expose on the host.

                                  If specified, this must be a valid port number, 0 < x < 65536.

                                  If HostNetwork is specified, this must match ContainerPort.

                                  Most containers do not need this.'
                                format: int32
                                type: integer
                              name:
                                description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                  named port in a pod must have a unique name. Name for the port that can be

                                  referred to by services.'
                                type: string
                              protocol:
                                default: TCP
                                description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                  Defaults to "TCP".'
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          description: 'Periodic probe of container service readiness.

                            Container will be removed from service endpoints if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          description: Resources resize policy for the container.
                          items:
                            description: ContainerResizePolicy represents resource resize policy for the container.
                            properties:
                              resourceName:
                                description: 'Name of the resource to which this resource resize policy applies.

                                  Supported values: cpu, memory.'
                                type: string
                              restartPolicy:
                                description: 'Restart policy to apply when specified resource is resized.

                                  If not specified, it defaults to NotRequired.'
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          description: 'Compute Resources required by this container.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                          properties:
                            claims:
                              description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                that are used by this container.


                                This is an alpha field and requires enabling the

                                DynamicResourceAllocation feature gate.


                                This field is immutable. It can only be set for containers.'
                              items:
                                description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                properties:
                                  name:
                                    description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                      the Pod where this field is used. It makes that resource available

                                      inside a container.'
                                    type: string
                                  request:
                                    description: 'Request is the name chosen for a request in the referenced claim.

                                      If empty, everything from the claim is made available, otherwise

                                      only the result of this request.'
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        restartPolicy:
                          description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                            This field may only be set for init containers, and the only allowed value is "Always".

                            For non-init containers or when this field is not specified,

                            the restart behavior is defined by the Pod''s restart policy and the container type.

                            Setting the RestartPolicy as "Always" for the init container will have the following effect:

                            this init container will be continually restarted on

                            exit until all regular containers have terminated. Once all regular

                            containers have completed, all init containers with restartPolicy "Always"

                            will be shut down. This lifecycle differs from normal init containers and

                            is often referred to as a "sidecar" container. Although this init

                            container still starts in the init container sequence, it does not wait

                            for the container to complete before proceeding to the next init

                            container. Instead, the next init container starts immediately after this

                            init container is started, or after any startupProbe has successfully

                            completed.'
                          type: string
                        securityContext:
                          description: 'SecurityContext defines the security options the container should be run with.

                            If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                            More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                          properties:
                            allowPrivilegeEscalation:
                              description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                privileges than its parent process. This bool directly controls if

                                the no_new_privs flag will be set on the container process.

                                AllowPrivilegeEscalation is true always when the container is:

                                1) run as Privileged

                                2) has CAP_SYS_ADMIN

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            appArmorProfile:
                              description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                overrides the pod''s appArmorProfile.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must match the loaded name of the profile.

                                    Must be set if and only if type is "Localhost".'
                                  type: string
                                type:
                                  description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              description: 'The capabilities to add/drop when running containers.

                                Defaults to the default set of capabilities granted by the container runtime.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                add:
                                  description: Added capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  description: Removed capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              description: 'Run container in privileged mode.

                                Processes in privileged containers are essentially equivalent to root on the host.

                                Defaults to false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            procMount:
                              description: 'procMount denotes the type of proc mount to use for the containers.

                                The default value is Default which uses the container runtime defaults for

                                readonly paths and masked paths.

                                This requires the ProcMountType feature flag to be enabled.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            readOnlyRootFilesystem:
                              description: 'Whether this container has a read-only root filesystem.

                                Default is false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            runAsGroup:
                              description: 'The GID to run the entrypoint of the container process.

                                Uses runtime default if unset.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            runAsNonRoot:
                              description: 'Indicates that the container must run as a non-root user.

                                If true, the Kubelet will validate the image at runtime to ensure that it

                                does not run as UID 0 (root) and fail to start the container if it does.

                                If unset or false, no such validation will be performed.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: boolean
                            runAsUser:
                              description: 'The UID to run the entrypoint of the container process.

                                Defaults to user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            seLinuxOptions:
                              description: 'The SELinux context to be applied to the container.

                                If unspecified, the container runtime will allocate a random SELinux context for each

                                container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                level:
                                  description: Level is SELinux level label that applies to the container.
                                  type: string
                                role:
                                  description: Role is a SELinux role label that applies to the container.
                                  type: string
                                type:
                                  description: Type is a SELinux type label that applies to the container.
                                  type: string
                                user:
                                  description: User is a SELinux user label that applies to the container.
                                  type: string
                              type: object
                            seccompProfile:
                              description: 'The seccomp options to use by this container. If seccomp options are

                                provided at both the pod & container level, the container options

                                override the pod options.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                    Must be set if type is "Localhost". Must NOT be set for any other type.'
                                  type: string
                                type:
                                  description: 'type indicates which kind of seccomp profile will be applied.

                                    Valid options are:


                                    Localhost - a profile defined in a file on the node should be used.

                                    RuntimeDefault - the container runtime default profile should be used.

                                    Unconfined - no profile should be applied.'
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              description: 'The Windows specific settings applied to all containers.

                                If unspecified, the options from the PodSecurityContext will be used.

                                If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is linux.'
                              properties:
                                gmsaCredentialSpec:
                                  description: 'GMSACredentialSpec is where the GMSA admission webhook

                                    (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                    GMSA credential spec named by the GMSACredentialSpecName field.'
                                  type: string
                                gmsaCredentialSpecName:
                                  description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                  type: string
                                hostProcess:
                                  description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                    All of a Pod''s containers must have the same effective HostProcess value

                                    (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                    In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                  type: boolean
                                runAsUserName:
                                  description: 'The UserName in Windows to run the entrypoint of the container process.

                                    Defaults to the user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext. If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: string
                              type: object
                          type: object
                        source:
                          description: Source contains the source code of the script to execute
                          type: string
                        startupProbe:
                          description: 'StartupProbe indicates that the Pod has successfully initialized.

                            If specified, no other probes are executed until this completes successfully.

                            If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                            This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                            when it might take a long time to load data or warm a cache, than during steady-state operation.

                            This cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                            is not set, reads from stdin in the container will always result in EOF.

                            Default is false.'
                          type: boolean
                        stdinOnce:
                          description: 'Whether the container runtime should close the stdin channel after it has been opened by

                            a single attach. When stdin is true the stdin stream will remain open across multiple attach

                            sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                            first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                            at which time stdin is closed and remains closed until the container is restarted. If this

                            flag is false, a container processes that reads from stdin will never receive an EOF.

                            Default is false'
                          type: boolean
                        terminationMessagePath:
                          description: 'Optional: Path at which the file to which the container''s termination message

                            will be written is mounted into the container''s filesystem.

                            Message written is intended to be brief final status, such as an assertion failure message.

                            Will be truncated by the node if greater than 4096 bytes. The total message length across

                            all containers will be limited to 12kb.

                            Defaults to /dev/termination-log.

                            Cannot be updated.'
                          type: string
                        terminationMessagePolicy:
                          description: 'Indicate how the termination message should be populated. File will use the contents of

                            terminationMessagePath to populate the container status message on both success and failure.

                            FallbackToLogsOnError will use the last chunk of container log output if the termination

                            message file is empty and the container exited with an error.

                            The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                            Defaults to File.

                            Cannot be updated.'
                          type: string
                        tty:
                          description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                            Default is false.'
                          type: boolean
                        volumeDevices:
                          description: volumeDevices is the list of block devices to be used by the container.
                          items:
                            description: volumeDevice describes a mapping of a raw block device within a container.
                            properties:
                              devicePath:
                                description: devicePath is the path inside of the container that the device will be mapped to.
                                type: string
                              name:
                                description: name must match the name of a persistentVolumeClaim in the pod
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          description: 'Pod volumes to mount into the container''s filesystem.

                            Cannot be updated.'
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          description: 'Container''s working directory.

                            If not specified, the container runtime''s default will be used, which

                            might be configured in the container image.

                            Cannot be updated.'
                          type: string
                      type: object
                    securityContext:
                      description: 'SecurityContext holds pod-level security attributes and common container settings.

                        Optional: Defaults to empty.  See type description for default values of each field.'
                      properties:
                        appArmorProfile:
                          description: 'appArmorProfile is the AppArmor options to use by the containers in this pod.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            localhostProfile:
                              description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                The profile must be preconfigured on the node to work.

                                Must match the loaded name of the profile.

                                Must be set if and only if type is "Localhost".'
                              type: string
                            type:
                              description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                              type: string
                          required:
                          - type
                          type: object
                        fsGroup:
                          description: 'A special supplemental group that applies to all containers in a pod.

                            Some volume types allow the Kubelet to change the ownership of that volume

                            to be owned by the pod:


                            1. The owning GID will be the FSGroup

                            2. The setgid bit is set (new files created in the volume will be owned by FSGroup)

                            3. The permission bits are OR''d with rw-rw----


                            If unset, the Kubelet will not modify the ownership and permissions of any volume.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        fsGroupChangePolicy:
                          description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume

                            before being exposed inside Pod. This field will only apply to

                            volume types which support fsGroup based ownership(and permissions).

                            It will have no effect on ephemeral volume types such as: secret, configmaps

                            and emptydir.

                            Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        runAsGroup:
                          description: 'The GID to run the entrypoint of the container process.

                            Uses runtime default if unset.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence

                            for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        runAsNonRoot:
                          description: 'Indicates that the container must run as a non-root user.

                            If true, the Kubelet will validate the image at runtime to ensure that it

                            does not run as UID 0 (root) and fail to start the container if it does.

                            If unset or false, no such validation will be performed.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence.'
                          type: boolean
                        runAsUser:
                          description: 'The UID to run the entrypoint of the container process.

                            Defaults to user specified in image metadata if unspecified.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence

                            for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        seLinuxChangePolicy:
                          description: 'seLinuxChangePolicy defines how the container''s SELinux label is applied to all volumes used by the Pod.

                            It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.

                            Valid values are "MountOption" and "Recursive".


                            "Recursive" means relabeling of all files on all Pod volumes by the container runtime.

                            This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.


                            "MountOption" mounts all eligible Pod volumes with `-o context` mount option.

                            This requires all Pods that share the same volume to use the same SELinux label.

                            It is not possible to share the same volume among privileged and unprivileged Pods.

                            Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes

                            whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their

                            CSIDriver instance. Other volumes are always re-labelled recursively.

                            "MountOption" value is allowed only when SELinuxMount feature gate is enabled.


                            If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.

                            If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes

                            and "Recursive" for all other volumes.


                            This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.


                            All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        seLinuxOptions:
                          description: 'The SELinux context to be applied to all containers.

                            If unspecified, the container runtime will allocate a random SELinux context for each

                            container.  May also be set in SecurityContext.  If set in

                            both SecurityContext and PodSecurityContext, the value specified in SecurityContext

                            takes precedence for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            level:
                              description: Level is SELinux level label that applies to the container.
                              type: string
                            role:
                              description: Role is a SELinux role label that applies to the container.
                              type: string
                            type:
                              description: Type is a SELinux type label that applies to the container.
                              type: string
                            user:
                              description: User is a SELinux user label that applies to the container.
                              type: string
                          type: object
                        seccompProfile:
                          description: 'The seccomp options to use by the containers in this pod.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            localhostProfile:
                              description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                The profile must be preconfigured on the node to work.

                                Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                Must be set if type is "Localhost". Must NOT be set for any other type.'
                              type: string
                            type:
                              description: 'type indicates which kind of seccomp profile will be applied.

                                Valid options are:


                                Localhost - a profile defined in a file on the node should be used.

                                RuntimeDefault - the container runtime default profile should be used.

                                Unconfined - no profile should be applied.'
                              type: string
                          required:
                          - type
                          type: object
                        supplementalGroups:
                          description: 'A list of groups applied to the first process run in each container, in

                            addition to the container''s primary GID and fsGroup (if specified).  If

                            the SupplementalGroupsPolicy feature is enabled, the

                            supplementalGroupsPolicy field determines whether these are in addition

                            to or instead of any group memberships defined in the container image.

                            If unspecified, no additional groups are added, though group memberships

                            defined in the container image may still be used, depending on the

                            supplementalGroupsPolicy field.

                            Note that this field cannot be set when spec.os.name is windows.'
                          items:
                            format: int64
                            type: integer
                          type: array
                          x-kubernetes-list-type: atomic
                        supplementalGroupsPolicy:
                          description: 'Defines how supplemental groups of the first container processes are calculated.

                            Valid values are "Merge" and "Strict". If not specified, "Merge" is used.

                            (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled

                            and the container runtime must implement support for this feature.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        sysctls:
                          description: 'Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported

                            sysctls (by the container runtime) might fail to launch.

                            Note that this field cannot be set when spec.os.name is windows.'
                          items:
                            description: Sysctl defines a kernel parameter to be set
                            properties:
                              name:
                                description: Name of a property to set
                                type: string
                              value:
                                description: Value of a property to set
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        windowsOptions:
                          description: 'The Windows specific settings applied to all containers.

                            If unspecified, the options within a container''s SecurityContext will be used.

                            If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                            Note that this field cannot be set when spec.os.name is linux.'
                          properties:
                            gmsaCredentialSpec:
                              description: 'GMSACredentialSpec is where the GMSA admission webhook

                                (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                GMSA credential spec named by the GMSACredentialSpecName field.'
                              type: string
                            gmsaCredentialSpecName:
                              description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                              type: string
                            hostProcess:
                              description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                All of a Pod''s containers must have the same effective HostProcess value

                                (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                In addition, if HostProcess is true then HostNetwork must also be set to true.'
                              type: boolean
                            runAsUserName:
                              description: 'The UserName in Windows to run the entrypoint of the container process.

                                Defaults to the user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext. If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: string
                          type: object
                      type: object
                    serviceAccountName:
                      description: ServiceAccountName to apply to workflow pods
                      type: string
                    sidecars:
                      description: 'Sidecars is a list of containers which run alongside the main container

                        Sidecars are automatically killed when the main container completes'
                      items:
                        description: UserContainer is a container specified by a user.
                        properties:
                          args:
                            description: 'Arguments to the entrypoint.

                              The container image''s CMD is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            description: 'Entrypoint array. Not executed within a shell.

                              The container image''s ENTRYPOINT is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            description: 'List of environment variables to set in the container.

                              Cannot be updated.'
                            items:
                              description: EnvVar represents an environment variable present in a Container.
                              properties:
                                name:
                                  description: Name of the environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                value:
                                  description: 'Variable references $(VAR_NAME) are expanded

                                    using the previously defined environment variables in the container and

                                    any service environment variables. If a variable cannot be resolved,

                                    the reference in the input string will be unchanged. Double $$ are reduced

                                    to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                    "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                    Escaped references will never be expanded, regardless of whether the variable

                                    exists or not.

                                    Defaults to "".'
                                  type: string
                                valueFrom:
                                  description: Source for the environment variable's value. Cannot be used if value is not empty.
                                  properties:
                                    configMapKeyRef:
                                      description: Selects a key of a ConfigMap.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                        spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      description: Selects a key of a secret in the pod's namespace
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            description: 'List of sources to populate environment variables in the container.

                              The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                              will be reported as an event when the container is starting. When a key exists in multiple

                              sources, the value associated with the last source will take precedence.

                              Values defined by an Env with a duplicate key will take precedence.

                              Cannot be updated.'
                            items:
                              description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                              properties:
                                configMapRef:
                                  description: The ConfigMap to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                secretRef:
                                  description: The Secret to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            description: 'Container image name.

                              More info: https://kubernetes.io/docs/concepts/containers/images

                              This field is optional to allow higher level config management to default or override

                              container images in workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy.

                              One of Always, Never, IfNotPresent.

                              Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          lifecycle:
                            description: 'Actions that the management system should take in response to container lifecycle events.

                              Cannot be updated.'
                            properties:
                              postStart:
                                description: 'PostStart is called immediately after a container is created. If the handler fails,

                                  the container is terminated and restarted according to its restart policy.

                                  Other management of the container blocks until the hook completes.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                description: 'PreStop is called immediately before a container is terminated due to an

                                  API request or management event such as liveness/startup probe failure,

                                  preemption, resource contention, etc. The handler is not called if the

                                  container crashes or exits. The Pod''s termination grace period countdown begins before the

                                  PreStop hook is executed. Regardless of the outcome of the handler, the

                                  container will eventually terminate within the Pod''s termination grace

                                  period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                  or until the termination grace period is reached.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                  If not specified, the default is defined by the container runtime in use.

                                  StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                type: string
                            type: object
                          livenessProbe:
                            description: 'Periodic probe of container liveness.

                              Container will be restarted if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          mirrorVolumeMounts:
                            description: 'MirrorVolumeMounts will mount the same volumes specified in the main container

                              to the container (including artifacts), at the same mountPaths. This enables

                              dind daemon to partially see the same filesystem as the main container in

                              order to use features such as docker volume binding'
                            type: boolean
                          name:
                            description: 'Name of the container specified as a DNS_LABEL.

                              Each container in a pod must have a unique name (DNS_LABEL).

                              Cannot be updated.'
                            type: string
                          ports:
                            description: 'List of ports to expose from the container. Not specifying a port here

                              DOES NOT prevent that port from being exposed. Any port which is

                              listening on the default "0.0.0.0" address inside a container will be

                              accessible from the network.

                              Modifying this array with strategic merge patch may corrupt the data.

                              For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                              Cannot be updated.'
                            items:
                              description: ContainerPort represents a network port in a single container.
                              properties:
                                containerPort:
                                  description: 'Number of port to expose on the pod''s IP address.

                                    This must be a valid port number, 0 < x < 65536.'
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port to.
                                  type: string
                                hostPort:
                                  description: 'Number of port to expose on the host.

                                    If specified, this must be a valid port number, 0 < x < 65536.

                                    If HostNetwork is specified, this must match ContainerPort.

                                    Most containers do not need this.'
                                  format: int32
                                  type: integer
                                name:
                                  description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                    named port in a pod must have a unique name. Name for the port that can be

                                    referred to by services.'
                                  type: string
                                protocol:
                                  default: TCP
                                  description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                    Defaults to "TCP".'
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            description: 'Periodic probe of container service readiness.

                              Container will be removed from service endpoints if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            description: Resources resize policy for the container.
                            items:
                              description: ContainerResizePolicy represents resource resize policy for the container.
                              properties:
                                resourceName:
                                  description: 'Name of the resource to which this resource resize policy applies.

                                    Supported values: cpu, memory.'
                                  type: string
                                restartPolicy:
                                  description: 'Restart policy to apply when specified resource is resized.

                                    If not specified, it defaults to NotRequired.'
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            description: 'Compute Resources required by this container.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                            properties:
                              claims:
                                description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                  that are used by this container.


                                  This is an alpha field and requires enabling the

                                  DynamicResourceAllocation feature gate.


                                  This field is immutable. It can only be set for containers.'
                                items:
                                  description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                  properties:
                                    name:
                                      description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                        the Pod where this field is used. It makes that resource available

                                        inside a container.'
                                      type: string
                                    request:
                                      description: 'Request is the name chosen for a request in the referenced claim.

                                        If empty, everything from the claim is made available, otherwise

                                        only the result of this request.'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Limits describes the maximum amount of compute resources allowed.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Requests describes the minimum amount of compute resources required.

                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                            type: object
                          restartPolicy:
                            description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                              This field may only be set for init containers, and the only allowed value is "Always".

                              For non-init containers or when this field is not specified,

                              the restart behavior is defined by the Pod''s restart policy and the container type.

                              Setting the RestartPolicy as "Always" for the init container will have the following effect:

                              this init container will be continually restarted on

                              exit until all regular containers have terminated. Once all regular

                              containers have completed, all init containers with restartPolicy "Always"

                              will be shut down. This lifecycle differs from normal init containers and

                              is often referred to as a "sidecar" container. Although this init

                              container still starts in the init container sequence, it does not wait

                              for the container to complete before proceeding to the next init

                              container. Instead, the next init container starts immediately after this

                              init container is started, or after any startupProbe has successfully

                              completed.'
                            type: string
                          securityContext:
                            description: 'SecurityContext defines the security options the container should be run with.

                              If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                              More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                            properties:
                              allowPrivilegeEscalation:
                                description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                  privileges than its parent process. This bool directly controls if

                                  the no_new_privs flag will be set on the container process.

                                  AllowPrivilegeEscalation is true always when the container is:

                                  1) run as Privileged

                                  2) has CAP_SYS_ADMIN

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              appArmorProfile:
                                description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                  overrides the pod''s appArmorProfile.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must match the loaded name of the profile.

                                      Must be set if and only if type is "Localhost".'
                                    type: string
                                  type:
                                    description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                description: 'The capabilities to add/drop when running containers.

                                  Defaults to the default set of capabilities granted by the container runtime.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  add:
                                    description: Added capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    description: Removed capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                description: 'Run container in privileged mode.

                                  Processes in privileged containers are essentially equivalent to root on the host.

                                  Defaults to false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              procMount:
                                description: 'procMount denotes the type of proc mount to use for the containers.

                                  The default value is Default which uses the container runtime defaults for

                                  readonly paths and masked paths.

                                  This requires the ProcMountType feature flag to be enabled.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: string
                              readOnlyRootFilesystem:
                                description: 'Whether this container has a read-only root filesystem.

                                  Default is false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              runAsGroup:
                                description: 'The GID to run the entrypoint of the container process.

                                  Uses runtime default if unset.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              runAsNonRoot:
                                description: 'Indicates that the container must run as a non-root user.

                                  If true, the Kubelet will validate the image at runtime to ensure that it

                                  does not run as UID 0 (root) and fail to start the container if it does.

                                  If unset or false, no such validation will be performed.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                type: boolean
                              runAsUser:
                                description: 'The UID to run the entrypoint of the container process.

                                  Defaults to user specified in image metadata if unspecified.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              seLinuxOptions:
                                description: 'The SELinux context to be applied to the container.

                                  If unspecified, the container runtime will allocate a random SELinux context for each

                                  container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  level:
                                    description: Level is SELinux level label that applies to the container.
                                    type: string
                                  role:
                                    description: Role is a SELinux role label that applies to the container.
                                    type: string
                                  type:
                                    description: Type is a SELinux type label that applies to the container.
                                    type: string
                                  user:
                                    description: User is a SELinux user label that applies to the container.
                                    type: string
                                type: object
                              seccompProfile:
                                description: 'The seccomp options to use by this container. If seccomp options are

                                  provided at both the pod & container level, the container options

                                  override the pod options.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                      Must be set if type is "Localhost". Must NOT be set for any other type.'
                                    type: string
                                  type:
                                    description: 'type indicates which kind of seccomp profile will be applied.

                                      Valid options are:


                                      Localhost - a profile defined in a file on the node should be used.

                                      RuntimeDefault - the container runtime default profile should be used.

                                      Unconfined - no profile should be applied.'
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                description: 'The Windows specific settings applied to all containers.

                                  If unspecified, the options from the PodSecurityContext will be used.

                                  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is linux.'
                                properties:
                                  gmsaCredentialSpec:
                                    description: 'GMSACredentialSpec is where the GMSA admission webhook

                                      (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                      GMSA credential spec named by the GMSACredentialSpecName field.'
                                    type: string
                                  gmsaCredentialSpecName:
                                    description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                    type: string
                                  hostProcess:
                                    description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                      All of a Pod''s containers must have the same effective HostProcess value

                                      (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                      In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                    type: boolean
                                  runAsUserName:
                                    description: 'The UserName in Windows to run the entrypoint of the container process.

                                      Defaults to the user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext. If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            description: 'StartupProbe indicates that the Pod has successfully initialized.

                              If specified, no other probes are executed until this completes successfully.

                              If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                              This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                              when it might take a long time to load data or warm a cache, than during steady-state operation.

                              This cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                              is not set, reads from stdin in the container will always result in EOF.

                              Default is false.'
                            type: boolean
                          stdinOnce:
                            description: 'Whether the container runtime should close the stdin channel after it has been opened by

                              a single attach. When stdin is true the stdin stream will remain open across multiple attach

                              sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                              first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                              at which time stdin is closed and remains closed until the container is restarted. If this

                              flag is false, a container processes that reads from stdin will never receive an EOF.

                              Default is false'
                            type: boolean
                          terminationMessagePath:
                            description: 'Optional: Path at which the file to which the container''s termination message

                              will be written is mounted into the container''s filesystem.

                              Message written is intended to be brief final status, such as an assertion failure message.

                              Will be truncated by the node if greater than 4096 bytes. The total message length across

                              all containers will be limited to 12kb.

                              Defaults to /dev/termination-log.

                              Cannot be updated.'
                            type: string
                          terminationMessagePolicy:
                            description: 'Indicate how the termination message should be populated. File will use the contents of

                              terminationMessagePath to populate the container status message on both success and failure.

                              FallbackToLogsOnError will use the last chunk of container log output if the termination

                              message file is empty and the container exited with an error.

                              The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                              Defaults to File.

                              Cannot be updated.'
                            type: string
                          tty:
                            description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                              Default is false.'
                            type: boolean
                          volumeDevices:
                            description: volumeDevices is the list of block devices to be used by the container.
                            items:
                              description: volumeDevice describes a mapping of a raw block device within a container.
                              properties:
                                devicePath:
                                  description: devicePath is the path inside of the container that the device will be mapped to.
                                  type: string
                                name:
                                  description: name must match the name of a persistentVolumeClaim in the pod
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            description: 'Pod volumes to mount into the container''s filesystem.

                              Cannot be updated.'
                            items:
                              description: VolumeMount describes a mounting of a Volume within a container.
                              properties:
                                mountPath:
                                  description: 'Path within the container at which the volume should be mounted.  Must

                                    not contain '':''.'
                                  type: string
                                mountPropagation:
                                  description: 'mountPropagation determines how mounts are propagated from the host

                                    to container and the other way around.

                                    When not set, MountPropagationNone is used.

                                    This field is beta in 1.10.

                                    When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                    (which defaults to None).'
                                  type: string
                                name:
                                  description: This must match the Name of a Volume.
                                  type: string
                                readOnly:
                                  description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                    Defaults to false.'
                                  type: boolean
                                recursiveReadOnly:
                                  description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                    recursively.


                                    If ReadOnly is false, this field has no meaning and must be unspecified.


                                    If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                    recursively read-only.  If this field is set to IfPossible, the mount is made

                                    recursively read-only, if it is supported by the container runtime.  If this

                                    field is set to Enabled, the mount is made recursively read-only if it is

                                    supported by the container runtime, otherwise the pod will not be started and

                                    an error will be generated to indicate the reason.


                                    If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                    None (or be unspecified, which defaults to None).


                                    If this field is not specified, it is treated as an equivalent of Disabled.'
                                  type: string
                                subPath:
                                  description: 'Path within the volume from which the container''s volume should be mounted.

                                    Defaults to "" (volume''s root).'
                                  type: string
                                subPathExpr:
                                  description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                    Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                    Defaults to "" (volume''s root).

                                    SubPathExpr and SubPath are mutually exclusive.'
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            description: 'Container''s working directory.

                              If not specified, the container runtime''s default will be used, which

                              might be configured in the container image.

                              Cannot be updated.'
                            type: string
                        required:
                        - name
                        type: object
                      type: array
                    steps:
                      description: Steps define a series of sequential/parallel workflow steps
                      items:
                        description: 'Note: the `json:"steps"` part exists to workaround kubebuilder limitations.

                          There isn''t actually a "steps" key in the JSON serialization; this is an anonymous list.

                          See the custom Unmarshaller below and ./hack/manifests/crd.go'
                        items:
                          description: 'WorkflowStep is a reference to a template to execute in a series of step

                            Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.'
                          properties:
                            arguments:
                              description: Arguments hold arguments to the template
                              properties:
                                artifacts:
                                  description: Artifacts is the list of artifacts to pass to the template or workflow
                                  items:
                                    description: Artifact indicates an artifact to place at a specified path
                                    properties:
                                      archive:
                                        description: Archive controls how the artifact will be saved to the artifact repository.
                                        properties:
                                          none:
                                            description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                              files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                              save/load the directory appropriately.'
                                            type: object
                                          tar:
                                            description: TarStrategy will tar and gzip the file or directory when saving
                                            properties:
                                              compressionLevel:
                                                description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                  Defaults to gzip.DefaultCompression.'
                                                format: int32
                                                type: integer
                                            type: object
                                          zip:
                                            description: ZipStrategy will unzip zipped input artifacts
                                            type: object
                                        type: object
                                      archiveLogs:
                                        description: ArchiveLogs indicates if the container logs should be archived
                                        type: boolean
                                      artifactGC:
                                        description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                        properties:
                                          podMetadata:
                                            description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                          serviceAccountName:
                                            description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                            type: string
                                          strategy:
                                            description: Strategy is the strategy to use.
                                            enum:
                                            - ''
                                            - OnWorkflowCompletion
                                            - OnWorkflowDeletion
                                            - Never
                                            type: string
                                        type: object
                                      artifactory:
                                        description: Artifactory contains artifactory artifact location details
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          url:
                                            description: URL of the artifact
                                            type: string
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - url
                                        type: object
                                      azure:
                                        description: Azure contains Azure Storage artifact location details
                                        properties:
                                          accountKeySecret:
                                            description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          blob:
                                            description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                            type: string
                                          container:
                                            description: Container is the container where resources will be stored
                                            type: string
                                          endpoint:
                                            description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                            type: string
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        required:
                                        - blob
                                        - container
                                        - endpoint
                                        type: object
                                      deleted:
                                        description: Has this been deleted?
                                        type: boolean
                                      from:
                                        description: From allows an artifact to reference an artifact from a previous step
                                        type: string
                                      fromExpression:
                                        description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                        type: string
                                      gcs:
                                        description: GCS contains GCS artifact location details
                                        properties:
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          key:
                                            description: Key is the path in the bucket where the artifact resides
                                            type: string
                                          serviceAccountKeySecret:
                                            description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - key
                                        type: object
                                      git:
                                        description: Git contains git artifact location details
                                        properties:
                                          branch:
                                            description: Branch is the branch to fetch when `SingleBranch` is enabled
                                            type: string
                                          depth:
                                            description: 'Depth specifies clones/fetches should be shallow and include the given

                                              number of commits from the branch tip'
                                            format: int64
                                            type: integer
                                          disableSubmodules:
                                            description: DisableSubmodules disables submodules during git clone
                                            type: boolean
                                          fetch:
                                            description: Fetch specifies a number of refs that should be fetched before checkout
                                            items:
                                              type: string
                                            type: array
                                          insecureIgnoreHostKey:
                                            description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                            type: boolean
                                          insecureSkipTLS:
                                            description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                            type: boolean
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          repo:
                                            description: Repo is the git repository
                                            type: string
                                          revision:
                                            description: Revision is the git commit, tag, branch to checkout
                                            type: string
                                          singleBranch:
                                            description: SingleBranch enables single branch clone, using the `branch` parameter
                                            type: boolean
                                          sshPrivateKeySecret:
                                            description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - repo
                                        type: object
                                      globalName:
                                        description: 'GlobalName exports an output artifact to the global scope, making it available as

                                          ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                        type: string
                                      hdfs:
                                        description: HDFS contains HDFS artifact location details
                                        properties:
                                          addresses:
                                            description: Addresses is accessible addresses of HDFS name nodes
                                            items:
                                              type: string
                                            type: array
                                          dataTransferProtection:
                                            description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                              It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                            type: string
                                          force:
                                            description: Force copies a file forcibly even if it exists
                                            type: boolean
                                          hdfsUser:
                                            description: 'HDFSUser is the user to access HDFS file system.

                                              It is ignored if either ccache or keytab is used.'
                                            type: string
                                          krbCCacheSecret:
                                            description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                              Either ccache or keytab can be set to use Kerberos.'
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbConfigConfigMap:
                                            description: 'KrbConfig is the configmap selector for Kerberos config as string

                                              It must be set if either ccache or keytab is used.'
                                            properties:
                                              key:
                                                description: The key to select.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the ConfigMap or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbKeytabSecret:
                                            description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                              Either ccache or keytab can be set to use Kerberos.'
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbRealm:
                                            description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                              It must be set if keytab is used.'
                                            type: string
                                          krbServicePrincipalName:
                                            description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                              It must be set if either ccache or keytab is used.'
                                            type: string
                                          krbUsername:
                                            description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                              It must be set if keytab is used.'
                                            type: string
                                          path:
                                            description: Path is a file path in HDFS
                                            type: string
                                        required:
                                        - path
                                        type: object
                                      http:
                                        description: HTTP contains HTTP artifact location details
                                        properties:
                                          auth:
                                            description: Auth contains information for client authentication
                                            properties:
                                              basicAuth:
                                                description: BasicAuth describes the secret selectors required for basic authentication
                                                properties:
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              clientCert:
                                                description: ClientCertAuth holds necessary information for client authentication via certificates
                                                properties:
                                                  clientCertSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientKeySecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              oauth2:
                                                description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                properties:
                                                  clientIDSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientSecretSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  endpointParams:
                                                    items:
                                                      description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                      properties:
                                                        key:
                                                          description: Name is the header name
                                                          type: string
                                                        value:
                                                          description: Value is the literal value to use for the header
                                                          type: string
                                                      required:
                                                      - key
                                                      type: object
                                                    type: array
                                                  scopes:
                                                    items:
                                                      type: string
                                                    type: array
                                                  tokenURLSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                            type: object
                                          headers:
                                            description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                            items:
                                              description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                              properties:
                                                name:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          url:
                                            description: URL of the artifact
                                            type: string
                                        required:
                                        - url
                                        type: object
                                      mode:
                                        description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                          Set when loading input artifacts. It is recommended to set the mode value

                                          to ensure the artifact has the expected permissions in your container.'
                                        format: int32
                                        maximum: 511
                                        minimum: 0
                                        type: integer
                                      name:
                                        description: name of the artifact. must be unique within a template's inputs/outputs.
                                        pattern: ^[-a-zA-Z0-9_{}.]+$
                                        type: string
                                      optional:
                                        description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                        type: boolean
                                      oss:
                                        description: OSS contains OSS artifact location details
                                        properties:
                                          accessKeySecret:
                                            description: AccessKeySecret is the secret selector to the bucket's access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          createBucketIfNotPresent:
                                            description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                            type: boolean
                                          endpoint:
                                            description: Endpoint is the hostname of the bucket endpoint
                                            type: string
                                          key:
                                            description: Key is the path in the bucket where the artifact resides
                                            type: string
                                          lifecycleRule:
                                            description: LifecycleRule specifies how to manage bucket's lifecycle
                                            properties:
                                              markDeletionAfterDays:
                                                description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                format: int32
                                                type: integer
                                              markInfrequentAccessAfterDays:
                                                description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                format: int32
                                                type: integer
                                            type: object
                                          secretKeySecret:
                                            description: SecretKeySecret is the secret selector to the bucket's secret key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          securityToken:
                                            description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                            type: string
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      path:
                                        description: Path is the container path to the artifact
                                        type: string
                                      plugin:
                                        description: Plugin contains plugin artifact location details
                                        properties:
                                          configuration:
                                            description: Configuration is the plugin defined configuration for the artifact driver plugin
                                            type: string
                                          connectionTimeoutSeconds:
                                            description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                            format: int32
                                            type: integer
                                          key:
                                            description: Key is the path in the artifact repository where the artifact resides
                                            type: string
                                          name:
                                            description: Name is the name of the artifact driver plugin
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      raw:
                                        description: Raw contains raw artifact location details
                                        properties:
                                          data:
                                            description: Data is the string contents of the artifact
                                            type: string
                                        required:
                                        - data
                                        type: object
                                      recurseMode:
                                        description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                        type: boolean
                                      s3:
                                        description: S3 contains S3 artifact location details
                                        properties:
                                          accessKeySecret:
                                            description: AccessKeySecret is the secret selector to the bucket's access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          caSecret:
                                            description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          createBucketIfNotPresent:
                                            description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                            properties:
                                              objectLocking:
                                                description: ObjectLocking Enable object locking
                                                type: boolean
                                            type: object
                                          encryptionOptions:
                                            description: S3EncryptionOptions used to determine encryption options during s3 operations
                                            properties:
                                              enableEncryption:
                                                description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                type: boolean
                                              kmsEncryptionContext:
                                                description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                type: string
                                              kmsKeyId:
                                                description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                type: string
                                              serverSideCustomerKeySecret:
                                                description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          endpoint:
                                            description: Endpoint is the hostname of the bucket endpoint
                                            type: string
                                          insecure:
                                            description: Insecure will connect to the service with TLS
                                            type: boolean
                                          key:
                                            description: Key is the key in the bucket where the artifact resides
                                            type: string
                                          region:
                                            description: Region contains the optional bucket region
                                            type: string
                                          roleARN:
                                            description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                            type: string
                                          secretKeySecret:
                                            description: SecretKeySecret is the secret selector to the bucket's secret key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          sessionTokenSecret:
                                            description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        type: object
                                      subPath:
                                        description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                        type: string
                                    required:
                                    - name
                                    type: object
                                    x-kubernetes-validations:
                                    - message: at most one artifact location can be specified
                                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                  type: array
                                parameters:
                                  description: Parameters is the list of parameters to pass to the template or workflow
                                  items:
                                    description: Parameter indicate a passed string parameter to a service template with an optional default value
                                    properties:
                                      default:
                                        description: Default is the default value to use for an input parameter if a value was not supplied
                                        type: string
                                      description:
                                        description: Description is the parameter description
                                        type: string
                                      enum:
                                        description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                        items:
                                          description: '* It''s JSON type is just string.

                                            * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                            * It will marshall back to string - marshalling is not symmetric.'
                                          type: string
                                        minItems: 1
                                        type: array
                                      globalName:
                                        description: 'GlobalName exports an output parameter to the global scope, making it available as

                                          ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                        type: string
                                      name:
                                        description: Name is the parameter name
                                        pattern: ^[-a-zA-Z0-9_]+$
                                        type: string
                                      value:
                                        description: 'Value is the literal value to use for the parameter.

                                          If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                        type: string
                                      valueFrom:
                                        description: ValueFrom is the source for the output parameter's value
                                        properties:
                                          configMapKeyRef:
                                            description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                            properties:
                                              key:
                                                description: The key to select.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the ConfigMap or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          default:
                                            description: Default specifies a value to be used if retrieving the value from the specified source fails
                                            type: string
                                          event:
                                            description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                            type: string
                                          expression:
                                            description: Expression, if defined, is evaluated to specify the value for the parameter
                                            type: string
                                          jqFilter:
                                            description: JQFilter expression against the resource object in resource templates
                                            type: string
                                          jsonPath:
                                            description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                            type: string
                                          parameter:
                                            description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                              (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                            type: string
                                          path:
                                            description: Path in the container to retrieve an output parameter value from in container templates
                                            type: string
                                          supplied:
                                            description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                            type: object
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  type: array
                              type: object
                            continueOn:
                              description: 'ContinueOn makes argo to proceed with the following step even if this step fails.

                                Errors and Failed states can be specified'
                              properties:
                                error:
                                  type: boolean
                                failed:
                                  type: boolean
                              type: object
                            hooks:
                              additionalProperties:
                                properties:
                                  arguments:
                                    description: Arguments hold arguments to the template
                                    properties:
                                      artifacts:
                                        description: Artifacts is the list of artifacts to pass to the template or workflow
                                        items:
                                          description: Artifact indicates an artifact to place at a specified path
                                          properties:
                                            archive:
                                              description: Archive controls how the artifact will be saved to the artifact repository.
                                              properties:
                                                none:
                                                  description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                    files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                    save/load the directory appropriately.'
                                                  type: object
                                                tar:
                                                  description: TarStrategy will tar and gzip the file or directory when saving
                                                  properties:
                                                    compressionLevel:
                                                      description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                        Defaults to gzip.DefaultCompression.'
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                zip:
                                                  description: ZipStrategy will unzip zipped input artifacts
                                                  type: object
                                              type: object
                                            archiveLogs:
                                              description: ArchiveLogs indicates if the container logs should be archived
                                              type: boolean
                                            artifactGC:
                                              description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                              properties:
                                                podMetadata:
                                                  description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                serviceAccountName:
                                                  description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                  type: string
                                                strategy:
                                                  description: Strategy is the strategy to use.
                                                  enum:
                                                  - ''
                                                  - OnWorkflowCompletion
                                                  - OnWorkflowDeletion
                                                  - Never
                                                  type: string
                                              type: object
                                            artifactory:
                                              description: Artifactory contains artifactory artifact location details
                                              properties:
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                url:
                                                  description: URL of the artifact
                                                  type: string
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - url
                                              type: object
                                            azure:
                                              description: Azure contains Azure Storage artifact location details
                                              properties:
                                                accountKeySecret:
                                                  description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                blob:
                                                  description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                  type: string
                                                container:
                                                  description: Container is the container where resources will be stored
                                                  type: string
                                                endpoint:
                                                  description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                  type: string
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              required:
                                              - blob
                                              - container
                                              - endpoint
                                              type: object
                                            deleted:
                                              description: Has this been deleted?
                                              type: boolean
                                            from:
                                              description: From allows an artifact to reference an artifact from a previous step
                                              type: string
                                            fromExpression:
                                              description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                              type: string
                                            gcs:
                                              description: GCS contains GCS artifact location details
                                              properties:
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                key:
                                                  description: Key is the path in the bucket where the artifact resides
                                                  type: string
                                                serviceAccountKeySecret:
                                                  description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - key
                                              type: object
                                            git:
                                              description: Git contains git artifact location details
                                              properties:
                                                branch:
                                                  description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                  type: string
                                                depth:
                                                  description: 'Depth specifies clones/fetches should be shallow and include the given

                                                    number of commits from the branch tip'
                                                  format: int64
                                                  type: integer
                                                disableSubmodules:
                                                  description: DisableSubmodules disables submodules during git clone
                                                  type: boolean
                                                fetch:
                                                  description: Fetch specifies a number of refs that should be fetched before checkout
                                                  items:
                                                    type: string
                                                  type: array
                                                insecureIgnoreHostKey:
                                                  description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                  type: boolean
                                                insecureSkipTLS:
                                                  description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                  type: boolean
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                repo:
                                                  description: Repo is the git repository
                                                  type: string
                                                revision:
                                                  description: Revision is the git commit, tag, branch to checkout
                                                  type: string
                                                singleBranch:
                                                  description: SingleBranch enables single branch clone, using the `branch` parameter
                                                  type: boolean
                                                sshPrivateKeySecret:
                                                  description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - repo
                                              type: object
                                            globalName:
                                              description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                              type: string
                                            hdfs:
                                              description: HDFS contains HDFS artifact location details
                                              properties:
                                                addresses:
                                                  description: Addresses is accessible addresses of HDFS name nodes
                                                  items:
                                                    type: string
                                                  type: array
                                                dataTransferProtection:
                                                  description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                    It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                  type: string
                                                force:
                                                  description: Force copies a file forcibly even if it exists
                                                  type: boolean
                                                hdfsUser:
                                                  description: 'HDFSUser is the user to access HDFS file system.

                                                    It is ignored if either ccache or keytab is used.'
                                                  type: string
                                                krbCCacheSecret:
                                                  description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                    Either ccache or keytab can be set to use Kerberos.'
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbConfigConfigMap:
                                                  description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                    It must be set if either ccache or keytab is used.'
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the ConfigMap or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbKeytabSecret:
                                                  description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                    Either ccache or keytab can be set to use Kerberos.'
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbRealm:
                                                  description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                    It must be set if keytab is used.'
                                                  type: string
                                                krbServicePrincipalName:
                                                  description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                    It must be set if either ccache or keytab is used.'
                                                  type: string
                                                krbUsername:
                                                  description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                    It must be set if keytab is used.'
                                                  type: string
                                                path:
                                                  description: Path is a file path in HDFS
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                            http:
                                              description: HTTP contains HTTP artifact location details
                                              properties:
                                                auth:
                                                  description: Auth contains information for client authentication
                                                  properties:
                                                    basicAuth:
                                                      description: BasicAuth describes the secret selectors required for basic authentication
                                                      properties:
                                                        passwordSecret:
                                                          description: PasswordSecret is the secret selector to the repository password
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        usernameSecret:
                                                          description: UsernameSecret is the secret selector to the repository username
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    clientCert:
                                                      description: ClientCertAuth holds necessary information for client authentication via certificates
                                                      properties:
                                                        clientCertSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientKeySecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    oauth2:
                                                      description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                      properties:
                                                        clientIDSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientSecretSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        endpointParams:
                                                          items:
                                                            description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                            properties:
                                                              key:
                                                                description: Name is the header name
                                                                type: string
                                                              value:
                                                                description: Value is the literal value to use for the header
                                                                type: string
                                                            required:
                                                            - key
                                                            type: object
                                                          type: array
                                                        scopes:
                                                          items:
                                                            type: string
                                                          type: array
                                                        tokenURLSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                  type: object
                                                headers:
                                                  description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                  items:
                                                    description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                    properties:
                                                      name:
                                                        description: Name is the header name
                                                        type: string
                                                      value:
                                                        description: Value is the literal value to use for the header
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                url:
                                                  description: URL of the artifact
                                                  type: string
                                              required:
                                              - url
                                              type: object
                                            mode:
                                              description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                Set when loading input artifacts. It is recommended to set the mode value

                                                to ensure the artifact has the expected permissions in your container.'
                                              format: int32
                                              maximum: 511
                                              minimum: 0
                                              type: integer
                                            name:
                                              description: name of the artifact. must be unique within a template's inputs/outputs.
                                              pattern: ^[-a-zA-Z0-9_{}.]+$
                                              type: string
                                            optional:
                                              description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                              type: boolean
                                            oss:
                                              description: OSS contains OSS artifact location details
                                              properties:
                                                accessKeySecret:
                                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                createBucketIfNotPresent:
                                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                  type: boolean
                                                endpoint:
                                                  description: Endpoint is the hostname of the bucket endpoint
                                                  type: string
                                                key:
                                                  description: Key is the path in the bucket where the artifact resides
                                                  type: string
                                                lifecycleRule:
                                                  description: LifecycleRule specifies how to manage bucket's lifecycle
                                                  properties:
                                                    markDeletionAfterDays:
                                                      description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                      format: int32
                                                      type: integer
                                                    markInfrequentAccessAfterDays:
                                                      description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                secretKeySecret:
                                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                securityToken:
                                                  description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                  type: string
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            path:
                                              description: Path is the container path to the artifact
                                              type: string
                                            plugin:
                                              description: Plugin contains plugin artifact location details
                                              properties:
                                                configuration:
                                                  description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                  type: string
                                                connectionTimeoutSeconds:
                                                  description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                  format: int32
                                                  type: integer
                                                key:
                                                  description: Key is the path in the artifact repository where the artifact resides
                                                  type: string
                                                name:
                                                  description: Name is the name of the artifact driver plugin
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            raw:
                                              description: Raw contains raw artifact location details
                                              properties:
                                                data:
                                                  description: Data is the string contents of the artifact
                                                  type: string
                                              required:
                                              - data
                                              type: object
                                            recurseMode:
                                              description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                              type: boolean
                                            s3:
                                              description: S3 contains S3 artifact location details
                                              properties:
                                                accessKeySecret:
                                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                caSecret:
                                                  description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                createBucketIfNotPresent:
                                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                  properties:
                                                    objectLocking:
                                                      description: ObjectLocking Enable object locking
                                                      type: boolean
                                                  type: object
                                                encryptionOptions:
                                                  description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                  properties:
                                                    enableEncryption:
                                                      description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                      type: boolean
                                                    kmsEncryptionContext:
                                                      description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                      type: string
                                                    kmsKeyId:
                                                      description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                      type: string
                                                    serverSideCustomerKeySecret:
                                                      description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                endpoint:
                                                  description: Endpoint is the hostname of the bucket endpoint
                                                  type: string
                                                insecure:
                                                  description: Insecure will connect to the service with TLS
                                                  type: boolean
                                                key:
                                                  description: Key is the key in the bucket where the artifact resides
                                                  type: string
                                                region:
                                                  description: Region contains the optional bucket region
                                                  type: string
                                                roleARN:
                                                  description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                  type: string
                                                secretKeySecret:
                                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                sessionTokenSecret:
                                                  description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              type: object
                                            subPath:
                                              description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                              type: string
                                          required:
                                          - name
                                          type: object
                                          x-kubernetes-validations:
                                          - message: at most one artifact location can be specified
                                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                        type: array
                                      parameters:
                                        description: Parameters is the list of parameters to pass to the template or workflow
                                        items:
                                          description: Parameter indicate a passed string parameter to a service template with an optional default value
                                          properties:
                                            default:
                                              description: Default is the default value to use for an input parameter if a value was not supplied
                                              type: string
                                            description:
                                              description: Description is the parameter description
                                              type: string
                                            enum:
                                              description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                              items:
                                                description: '* It''s JSON type is just string.

                                                  * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                  * It will marshall back to string - marshalling is not symmetric.'
                                                type: string
                                              minItems: 1
                                              type: array
                                            globalName:
                                              description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                              type: string
                                            name:
                                              description: Name is the parameter name
                                              pattern: ^[-a-zA-Z0-9_]+$
                                              type: string
                                            value:
                                              description: 'Value is the literal value to use for the parameter.

                                                If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                              type: string
                                            valueFrom:
                                              description: ValueFrom is the source for the output parameter's value
                                              properties:
                                                configMapKeyRef:
                                                  description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the ConfigMap or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                default:
                                                  description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                  type: string
                                                event:
                                                  description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                  type: string
                                                expression:
                                                  description: Expression, if defined, is evaluated to specify the value for the parameter
                                                  type: string
                                                jqFilter:
                                                  description: JQFilter expression against the resource object in resource templates
                                                  type: string
                                                jsonPath:
                                                  description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                  type: string
                                                parameter:
                                                  description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                    (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                  type: string
                                                path:
                                                  description: Path in the container to retrieve an output parameter value from in container templates
                                                  type: string
                                                supplied:
                                                  description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                  type: object
                                              type: object
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                                  expression:
                                    description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                      be retried and the retry strategy will be ignored'
                                    type: string
                                  template:
                                    description: Template is the name of the template to execute by the hook
                                    type: string
                                  templateRef:
                                    description: TemplateRef is the reference to the template resource to execute by the hook
                                    properties:
                                      clusterScope:
                                        description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                        type: boolean
                                      name:
                                        description: Name is the resource name of the template.
                                        type: string
                                      template:
                                        description: Template is the name of referred template in the resource.
                                        type: string
                                    type: object
                                type: object
                              description: 'Hooks holds the lifecycle hook which is invoked at lifecycle of

                                step, irrespective of the success, failure, or error status of the primary step'
                              type: object
                            inline:
                              description: 'Inline is the template. Template must be empty if this is declared (and vice-versa).

                                Note: This struct is defined recursively, since the inline template can potentially contain

                                steps/DAGs that also has an "inline" field. Kubernetes doesn''t allow recursive types, so we

                                need "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              description: Name of the step
                              maxLength: 128
                              pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                              type: string
                            onExit:
                              description: 'OnExit is a template reference which is invoked at the end of the

                                template, irrespective of the success, failure, or error of the

                                primary template.

                                DEPRECATED: Use Hooks[exit].Template instead.'
                              type: string
                            template:
                              description: Template is the name of the template to execute as the step
                              type: string
                            templateRef:
                              description: TemplateRef is the reference to the template resource to execute as the step.
                              properties:
                                clusterScope:
                                  description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                  type: boolean
                                name:
                                  description: Name is the resource name of the template.
                                  type: string
                                template:
                                  description: Template is the name of referred template in the resource.
                                  type: string
                              type: object
                            when:
                              description: When is an expression in which the step should conditionally execute
                              type: string
                            withItems:
                              description: 'WithItems expands a step into multiple parallel steps from the items in the list

                                Note: The structure of WithItems is free-form, so we need

                                "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                              x-kubernetes-preserve-unknown-fields: true
                            withParam:
                              description: 'WithParam expands a step into multiple parallel steps from the value in the parameter,

                                which is expected to be a JSON list.'
                              type: string
                            withSequence:
                              description: WithSequence expands a step into a numeric sequence
                              properties:
                                count:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Count is number of elements in the sequence (default: 0). Not to be used with end'
                                  x-kubernetes-int-or-string: true
                                end:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number at which to end the sequence (default: 0). Not to be used with Count'
                                  x-kubernetes-int-or-string: true
                                format:
                                  description: Format is a printf format string to format the value in the sequence
                                  type: string
                                start:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number at which to start the sequence (default: 0)'
                                  x-kubernetes-int-or-string: true
                              type: object
                              x-kubernetes-validations:
                              - message: only one of count or end can be defined
                                rule: '!(has(self.count) && has(self.end))'
                          type: object
                        type: array
                      minItems: 1
                      type: array
                    suspend:
                      description: Suspend template subtype which can suspend a workflow when reaching the step
                      properties:
                        duration:
                          description: 'Duration is the seconds to wait before automatically resuming a template. Must be a string. Default unit is seconds.

                            Could also be a Duration, e.g.: "2m", "6h"'
                          type: string
                      type: object
                    synchronization:
                      description: Synchronization holds synchronization lock configuration for this template
                      properties:
                        mutexes:
                          description: 'v3.6 and after: Mutexes holds the list of Mutex lock details'
                          items:
                            description: Mutex holds Mutex configuration
                            properties:
                              database:
                                description: Database specifies this is database controlled if this is set true
                                type: boolean
                              name:
                                description: name of the mutex
                                type: string
                              namespace:
                                description: 'Namespace is the namespace of the mutex, default: [namespace of workflow]'
                                type: string
                            type: object
                          type: array
                        semaphores:
                          description: 'v3.6 and after: Semaphores holds the list of Semaphores configuration'
                          items:
                            description: SemaphoreRef is a reference of Semaphore
                            properties:
                              configMapKeyRef:
                                description: ConfigMapKeyRef is a configmap selector for Semaphore configuration
                                properties:
                                  key:
                                    description: The key to select.
                                    type: string
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap or its key must be defined
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              database:
                                description: SyncDatabaseRef is a database reference for Semaphore configuration
                                properties:
                                  key:
                                    type: string
                                required:
                                - key
                                type: object
                              namespace:
                                description: 'Namespace is the namespace of the configmap, default: [namespace of workflow]'
                                type: string
                            type: object
                          type: array
                      type: object
                    timeout:
                      description: 'Timeout allows to set the total node execution timeout duration counting from the node''s start time.

                        This duration also includes time in which the node spends in Pending state. This duration may not be applied to Step or DAG templates.'
                      type: string
                    tolerations:
                      description: Tolerations to apply to workflow pods.
                      items:
                        description: 'The pod this Toleration is attached to tolerates any taint that matches

                          the triple <key,value,effect> using the matching operator <operator>.'
                        properties:
                          effect:
                            description: 'Effect indicates the taint effect to match. Empty means match all taint effects.

                              When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.'
                            type: string
                          key:
                            description: 'Key is the taint key that the toleration applies to. Empty means match all taint keys.

                              If the key is empty, operator must be Exists; this combination means to match all values and all keys.'
                            type: string
                          operator:
                            description: 'Operator represents a key''s relationship to the value.

                              Valid operators are Exists and Equal. Defaults to Equal.

                              Exists is equivalent to wildcard for value, so that a pod can

                              tolerate all taints of a particular category.'
                            type: string
                          tolerationSeconds:
                            description: 'TolerationSeconds represents the period of time the toleration (which must be

                              of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,

                              it is not set, which means tolerate the taint forever (do not evict). Zero and

                              negative values will be treated as 0 (evict immediately) by the system.'
                            format: int64
                            type: integer
                          value:
                            description: 'Value is the taint value the toleration matches to.

                              If the operator is Exists, the value should be empty, otherwise just a regular string.'
                            type: string
                        type: object
                      type: array
                    volumes:
                      description: Volumes is a list of volumes that can be mounted by containers in a template.
                      items:
                        description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
                        properties:
                          awsElasticBlockStore:
                            description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree

                              awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: string
                              partition:
                                description: 'partition is the partition in the volume that you want to mount.

                                  If omitted, the default is to mount by volume name.

                                  Examples: For volume /dev/sda1, you specify the partition as "1".

                                  Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
                                format: int32
                                type: integer
                              readOnly:
                                description: 'readOnly value true will force the readOnly setting in VolumeMounts.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: boolean
                              volumeID:
                                description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: string
                            required:
                            - volumeID
                            type: object
                          azureDisk:
                            description: 'azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

                              Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type

                              are redirected to the disk.csi.azure.com CSI driver.'
                            properties:
                              cachingMode:
                                description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                                type: string
                              diskName:
                                description: diskName is the Name of the data disk in the blob storage
                                type: string
                              diskURI:
                                description: diskURI is the URI of data disk in the blob storage
                                type: string
                              fsType:
                                default: ext4
                                description: 'fsType is Filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              kind:
                                description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
                                type: string
                              readOnly:
                                default: false
                                description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                            required:
                            - diskName
                            - diskURI
                            type: object
                          azureFile:
                            description: 'azureFile represents an Azure File Service mount on the host and bind mount to the pod.

                              Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type

                              are redirected to the file.csi.azure.com CSI driver.'
                            properties:
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretName:
                                description: secretName is the  name of secret that contains Azure Storage Account Name and Key
                                type: string
                              shareName:
                                description: shareName is the azure share Name
                                type: string
                            required:
                            - secretName
                            - shareName
                            type: object
                          cephfs:
                            description: 'cephFS represents a Ceph FS mount on the host that shares a pod''s lifetime.

                              Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.'
                            properties:
                              monitors:
                                description: 'monitors is Required: Monitors is a collection of Ceph monitors

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
                                type: string
                              readOnly:
                                description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: boolean
                              secretFile:
                                description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: string
                              secretRef:
                                description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              user:
                                description: 'user is optional: User is the rados user name, default is admin

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: string
                            required:
                            - monitors
                            type: object
                          cinder:
                            description: 'cinder represents a cinder volume attached and mounted on kubelets host machine.

                              Deprecated: Cinder is deprecated. All operations for the in-tree cinder type

                              are redirected to the cinder.csi.openstack.org CSI driver.

                              More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: boolean
                              secretRef:
                                description: 'secretRef is optional: points to a secret object containing parameters used to connect

                                  to OpenStack.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              volumeID:
                                description: 'volumeID used to identify the volume in cinder.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: string
                            required:
                            - volumeID
                            type: object
                          configMap:
                            description: configMap represents a configMap that should populate this volume
                            properties:
                              defaultMode:
                                description: 'defaultMode is optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                  ConfigMap will be projected into the volume as a file whose name is the

                                  key and content is the value. If specified, the listed keys will be

                                  projected into the specified paths, and unlisted keys will not be

                                  present. If a key is specified which is not present in the ConfigMap,

                                  the volume setup will error unless it is marked optional. Paths must be

                                  relative and may not contain the ''..'' path or start with ''..''.'
                                items:
                                  description: Maps a string key to a path within a volume.
                                  properties:
                                    key:
                                      description: key is the key to project.
                                      type: string
                                    mode:
                                      description: 'mode is Optional: mode bits used to set permissions on this file.

                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'path is the relative path of the file to map the key to.

                                        May not be an absolute path.

                                        May not contain the path element ''..''.

                                        May not start with the string ''..''.'
                                      type: string
                                  required:
                                  - key
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              name:
                                default: ''
                                description: 'Name of the referent.

                                  This field is effectively required, but due to backwards compatibility is

                                  allowed to be empty. Instances of this type with an empty value here are

                                  almost certainly wrong.

                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                              optional:
                                description: optional specify whether the ConfigMap or its keys must be defined
                                type: boolean
                            type: object
                            x-kubernetes-map-type: atomic
                          csi:
                            description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
                            properties:
                              driver:
                                description: 'driver is the name of the CSI driver that handles this volume.

                                  Consult with your admin for the correct name as registered in the cluster.'
                                type: string
                              fsType:
                                description: 'fsType to mount. Ex. "ext4", "xfs", "ntfs".

                                  If not provided, the empty value is passed to the associated CSI driver

                                  which will determine the default filesystem to apply.'
                                type: string
                              nodePublishSecretRef:
                                description: 'nodePublishSecretRef is a reference to the secret object containing

                                  sensitive information to pass to the CSI driver to complete the CSI

                                  NodePublishVolume and NodeUnpublishVolume calls.

                                  This field is optional, and  may be empty if no secret is required. If the

                                  secret object contains more than one secret, all secret references are passed.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              readOnly:
                                description: 'readOnly specifies a read-only configuration for the volume.

                                  Defaults to false (read/write).'
                                type: boolean
                              volumeAttributes:
                                additionalProperties:
                                  type: string
                                description: 'volumeAttributes stores driver-specific properties that are passed to the CSI

                                  driver. Consult your driver''s documentation for supported values.'
                                type: object
                            required:
                            - driver
                            type: object
                          downwardAPI:
                            description: downwardAPI represents downward API about the pod that should populate this volume
                            properties:
                              defaultMode:
                                description: 'Optional: mode bits to use on created files by default. Must be a

                                  Optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: Items is a list of downward API volume file
                                items:
                                  description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                  properties:
                                    fieldRef:
                                      description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    mode:
                                      description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                        between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                      type: string
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          emptyDir:
                            description: 'emptyDir represents a temporary directory that shares a pod''s lifetime.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                            properties:
                              medium:
                                description: 'medium represents what type of storage medium should back this directory.

                                  The default is "" which means to use the node''s default medium.

                                  Must be an empty string (default) or Memory.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                type: string
                              sizeLimit:
                                anyOf:
                                - type: integer
                                - type: string
                                description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume.

                                  The size limit is also applicable for memory medium.

                                  The maximum usage on memory medium EmptyDir would be the minimum value between

                                  the SizeLimit specified here and the sum of memory limits of all containers in a pod.

                                  The default is nil which means that the limit is undefined.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          ephemeral:
                            description: "ephemeral represents a volume that is handled by a cluster storage driver.\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n   tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\n   information on the connection between this volume type\n   and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time."
                            properties:
                              volumeClaimTemplate:
                                description: 'Will be used to create a stand-alone PVC to provision the volume.

                                  The pod in which this EphemeralVolumeSource is embedded will be the

                                  owner of the PVC, i.e. the PVC will be deleted together with the

                                  pod.  The name of the PVC will be `<pod name>-<volume name>` where

                                  `<volume name>` is the name from the `PodSpec.Volumes` array

                                  entry. Pod validation will reject the pod if the concatenated name

                                  is not valid for a PVC (for example, too long).


                                  An existing PVC with that name that is not owned by the pod

                                  will *not* be used for the pod to avoid using an unrelated

                                  volume by mistake. Starting the pod is then blocked until

                                  the unrelated PVC is removed. If such a pre-created PVC is

                                  meant to be used by the pod, the PVC has to updated with an

                                  owner reference to the pod once the pod exists. Normally

                                  this should not be necessary, but it may be useful when

                                  manually reconstructing a broken cluster.


                                  This field is read-only and no changes will be made by Kubernetes

                                  to the PVC after it has been created.


                                  Required, must not be nil.'
                                properties:
                                  metadata:
                                    description: 'May contain labels and annotations that will be copied into the PVC

                                      when creating it. No other fields are allowed and will be rejected during

                                      validation.'
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      finalizers:
                                        items:
                                          type: string
                                        type: array
                                      generateName:
                                        type: string
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      name:
                                        type: string
                                      namespace:
                                        type: string
                                    type: object
                                  spec:
                                    description: 'The specification for the PersistentVolumeClaim. The entire content is

                                      copied unchanged into the PVC that gets created from this

                                      template. The same fields as in a PersistentVolumeClaim

                                      are also valid here.'
                                    properties:
                                      accessModes:
                                        description: 'accessModes contains the desired access modes the volume should have.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      dataSource:
                                        description: 'dataSource field can be used to specify either:

                                          * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                          * An existing PVC (PersistentVolumeClaim)

                                          If the provisioner or an external controller can support the specified data source,

                                          it will create a new volume based on the contents of the specified data source.

                                          When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                          and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                          If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                        properties:
                                          apiGroup:
                                            description: 'APIGroup is the group for the resource being referenced.

                                              If APIGroup is not specified, the specified Kind must be in the core API group.

                                              For any other third-party types, APIGroup is required.'
                                            type: string
                                          kind:
                                            description: Kind is the type of resource being referenced
                                            type: string
                                          name:
                                            description: Name is the name of resource being referenced
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      dataSourceRef:
                                        description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                                        properties:
                                          apiGroup:
                                            description: 'APIGroup is the group for the resource being referenced.

                                              If APIGroup is not specified, the specified Kind must be in the core API group.

                                              For any other third-party types, APIGroup is required.'
                                            type: string
                                          kind:
                                            description: Kind is the type of resource being referenced
                                            type: string
                                          name:
                                            description: Name is the name of resource being referenced
                                            type: string
                                          namespace:
                                            description: 'Namespace is the namespace of resource being referenced

                                              Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                              (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                      resources:
                                        description: 'resources represents the minimum resources the volume should have.

                                          If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                          that are lower than previous value but must still be higher than capacity recorded in the

                                          status field of the claim.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                        properties:
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Limits describes the maximum amount of compute resources allowed.

                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Requests describes the minimum amount of compute resources required.

                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                        type: object
                                      selector:
                                        description: selector is a label query over volumes to consider for binding.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      storageClassName:
                                        description: 'storageClassName is the name of the StorageClass required by the claim.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                        type: string
                                      volumeAttributesClassName:
                                        description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                          If specified, the CSI driver will create or update the volume with the attributes defined

                                          in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                          it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                          will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                          If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                          will be set by the persistentvolume controller if it exists.

                                          If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                          set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                          exists.

                                          More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                          (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                                        type: string
                                      volumeMode:
                                        description: 'volumeMode defines what type of volume is required by the claim.

                                          Value of Filesystem is implied when not included in claim spec.'
                                        type: string
                                      volumeName:
                                        description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                        type: string
                                    type: object
                                required:
                                - spec
                                type: object
                            type: object
                          fc:
                            description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              lun:
                                description: 'lun is Optional: FC target lun number'
                                format: int32
                                type: integer
                              readOnly:
                                description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              targetWWNs:
                                description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              wwids:
                                description: 'wwids Optional: FC volume world wide identifiers (wwids)

                                  Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          flexVolume:
                            description: 'flexVolume represents a generic volume resource that is

                              provisioned/attached using an exec based plugin.

                              Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.'
                            properties:
                              driver:
                                description: driver is the name of the driver to use for this volume.
                                type: string
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.'
                                type: string
                              options:
                                additionalProperties:
                                  type: string
                                description: 'options is Optional: this field holds extra command options if any.'
                                type: object
                              readOnly:
                                description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef is Optional: secretRef is reference to the secret object containing

                                  sensitive information to pass to the plugin scripts. This may be

                                  empty if no secret object is specified. If the secret object

                                  contains more than one secret, all secrets are passed to the plugin

                                  scripts.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - driver
                            type: object
                          flocker:
                            description: 'flocker represents a Flocker volume attached to a kubelet''s host machine. This depends on the Flocker control service being running.

                              Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.'
                            properties:
                              datasetName:
                                description: 'datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker

                                  should be considered as deprecated'
                                type: string
                              datasetUUID:
                                description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
                                type: string
                            type: object
                          gcePersistentDisk:
                            description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree

                              gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                            properties:
                              fsType:
                                description: 'fsType is filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: string
                              partition:
                                description: 'partition is the partition in the volume that you want to mount.

                                  If omitted, the default is to mount by volume name.

                                  Examples: For volume /dev/sda1, you specify the partition as "1".

                                  Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                format: int32
                                type: integer
                              pdName:
                                description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: boolean
                            required:
                            - pdName
                            type: object
                          gitRepo:
                            description: 'gitRepo represents a git repository at a particular revision.

                              Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an

                              EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir

                              into the Pod''s container.'
                            properties:
                              directory:
                                description: 'directory is the target directory name.

                                  Must not contain or start with ''..''.  If ''.'' is supplied, the volume directory will be the

                                  git repository.  Otherwise, if specified, the volume will contain the git repository in

                                  the subdirectory with the given name.'
                                type: string
                              repository:
                                description: repository is the URL
                                type: string
                              revision:
                                description: revision is the commit hash for the specified revision.
                                type: string
                            required:
                            - repository
                            type: object
                          glusterfs:
                            description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime.

                              Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.

                              More info: https://examples.k8s.io/volumes/glusterfs/README.md'
                            properties:
                              endpoints:
                                description: 'endpoints is the endpoint name that details Glusterfs topology.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: string
                              path:
                                description: 'path is the Glusterfs volume path.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions.

                                  Defaults to false.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: boolean
                            required:
                            - endpoints
                            - path
                            type: object
                          hostPath:
                            description: 'hostPath represents a pre-existing file or directory on the host

                              machine that is directly exposed to the container. This is generally

                              used for system agents or other privileged things that are allowed

                              to see the host machine. Most containers will NOT need this.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                            properties:
                              path:
                                description: 'path of the directory on the host.

                                  If the path is a symlink, it will follow the link to the real path.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                type: string
                              type:
                                description: 'type for HostPath Volume

                                  Defaults to ""

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                type: string
                            required:
                            - path
                            type: object
                          image:
                            description: 'image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet''s host machine.

                              The volume is resolved at pod startup depending on which PullPolicy value is provided:


                              - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                              - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                              - IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.


                              The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.

                              A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.

                              The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.

                              The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.

                              The volume will be mounted read-only (ro) and non-executable files (noexec).

                              Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.

                              The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.'
                            properties:
                              pullPolicy:
                                description: 'Policy for pulling OCI objects. Possible values are:

                                  Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                                  Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                                  IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.

                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.'
                                type: string
                              reference:
                                description: 'Required: Image or artifact reference to be used.

                                  Behaves in the same way as pod.spec.containers[*].image.

                                  Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.

                                  More info: https://kubernetes.io/docs/concepts/containers/images

                                  This field is optional to allow higher level config management to default or override

                                  container images in workload controllers like Deployments and StatefulSets.'
                                type: string
                            type: object
                          iscsi:
                            description: 'iscsi represents an ISCSI Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              More info: https://examples.k8s.io/volumes/iscsi/README.md'
                            properties:
                              chapAuthDiscovery:
                                description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
                                type: boolean
                              chapAuthSession:
                                description: chapAuthSession defines whether support iSCSI Session CHAP authentication
                                type: boolean
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi'
                                type: string
                              initiatorName:
                                description: 'initiatorName is the custom iSCSI Initiator Name.

                                  If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface

                                  <target portal>:<volume name> will be created for the connection.'
                                type: string
                              iqn:
                                description: iqn is the target iSCSI Qualified Name.
                                type: string
                              iscsiInterface:
                                default: default
                                description: 'iscsiInterface is the interface Name that uses an iSCSI transport.

                                  Defaults to ''default'' (tcp).'
                                type: string
                              lun:
                                description: lun represents iSCSI Target Lun number.
                                format: int32
                                type: integer
                              portals:
                                description: 'portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port

                                  is other than default (typically TCP ports 860 and 3260).'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.'
                                type: boolean
                              secretRef:
                                description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              targetPortal:
                                description: 'targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port

                                  is other than default (typically TCP ports 860 and 3260).'
                                type: string
                            required:
                            - iqn
                            - lun
                            - targetPortal
                            type: object
                          name:
                            description: 'name of the volume.

                              Must be a DNS_LABEL and unique within the pod.

                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                          nfs:
                            description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                            properties:
                              path:
                                description: 'path that is exported by the NFS server.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the NFS export to be mounted with read-only permissions.

                                  Defaults to false.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: boolean
                              server:
                                description: 'server is the hostname or IP address of the NFS server.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: string
                            required:
                            - path
                            - server
                            type: object
                          persistentVolumeClaim:
                            description: 'persistentVolumeClaimVolumeSource represents a reference to a

                              PersistentVolumeClaim in the same namespace.

                              More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                            properties:
                              claimName:
                                description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.

                                  More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                                type: string
                              readOnly:
                                description: 'readOnly Will force the ReadOnly setting in VolumeMounts.

                                  Default false.'
                                type: boolean
                            required:
                            - claimName
                            type: object
                          photonPersistentDisk:
                            description: 'photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.

                              Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              pdID:
                                description: pdID is the ID that identifies Photon Controller persistent disk
                                type: string
                            required:
                            - pdID
                            type: object
                          portworxVolume:
                            description: 'portworxVolume represents a portworx volume attached and mounted on kubelets host machine.

                              Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type

                              are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate

                              is on.'
                            properties:
                              fsType:
                                description: 'fSType represents the filesystem type to mount

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              volumeID:
                                description: volumeID uniquely identifies a Portworx volume
                                type: string
                            required:
                            - volumeID
                            type: object
                          projected:
                            description: projected items for all in one resources secrets, configmaps, and downward API
                            properties:
                              defaultMode:
                                description: 'defaultMode are the mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              sources:
                                description: 'sources is the list of volume projections. Each entry in this list

                                  handles one source.'
                                items:
                                  description: 'Projection that may be projected along with other supported volume types.

                                    Exactly one of these fields must be set.'
                                  properties:
                                    clusterTrustBundle:
                                      description: 'ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field

                                        of ClusterTrustBundle objects in an auto-updating file.


                                        Alpha, gated by the ClusterTrustBundleProjection feature gate.


                                        ClusterTrustBundle objects can either be selected by name, or by the

                                        combination of signer name and a label selector.


                                        Kubelet performs aggressive normalization of the PEM contents written

                                        into the pod filesystem.  Esoteric PEM features such as inter-block

                                        comments and block headers are stripped.  Certificates are deduplicated.

                                        The ordering of certificates within the file is arbitrary, and Kubelet

                                        may change the order over time.'
                                      properties:
                                        labelSelector:
                                          description: 'Select all ClusterTrustBundles that match this label selector.  Only has

                                            effect if signerName is set.  Mutually-exclusive with name.  If unset,

                                            interpreted as "match nothing".  If set but empty, interpreted as "match

                                            everything".'
                                          properties:
                                            matchExpressions:
                                              description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                              items:
                                                description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                  relates the key and values.'
                                                properties:
                                                  key:
                                                    description: key is the label key that the selector applies to.
                                                    type: string
                                                  operator:
                                                    description: 'operator represents a key''s relationship to a set of values.

                                                      Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                    type: string
                                                  values:
                                                    description: 'values is an array of string values. If the operator is In or NotIn,

                                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                      the values array must be empty. This array is replaced during a strategic

                                                      merge patch.'
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        name:
                                          description: 'Select a single ClusterTrustBundle by object name.  Mutually-exclusive

                                            with signerName and labelSelector.'
                                          type: string
                                        optional:
                                          description: 'If true, don''t block pod startup if the referenced ClusterTrustBundle(s)

                                            aren''t available.  If using name, then the named ClusterTrustBundle is

                                            allowed not to exist.  If using signerName, then the combination of

                                            signerName and labelSelector is allowed to match zero

                                            ClusterTrustBundles.'
                                          type: boolean
                                        path:
                                          description: Relative path from the volume root to write the bundle.
                                          type: string
                                        signerName:
                                          description: 'Select all ClusterTrustBundles that match this signer name.

                                            Mutually-exclusive with name.  The contents of all selected

                                            ClusterTrustBundles will be unified and deduplicated.'
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    configMap:
                                      description: configMap information about the configMap data to project
                                      properties:
                                        items:
                                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                            ConfigMap will be projected into the volume as a file whose name is the

                                            key and content is the value. If specified, the listed keys will be

                                            projected into the specified paths, and unlisted keys will not be

                                            present. If a key is specified which is not present in the ConfigMap,

                                            the volume setup will error unless it is marked optional. Paths must be

                                            relative and may not contain the ''..'' path or start with ''..''.'
                                          items:
                                            description: Maps a string key to a path within a volume.
                                            properties:
                                              key:
                                                description: key is the key to project.
                                                type: string
                                              mode:
                                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'path is the relative path of the file to map the key to.

                                                  May not be an absolute path.

                                                  May not contain the path element ''..''.

                                                  May not start with the string ''..''.'
                                                type: string
                                            required:
                                            - key
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: optional specify whether the ConfigMap or its keys must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    downwardAPI:
                                      description: downwardAPI information about the downwardAPI data to project
                                      properties:
                                        items:
                                          description: Items is a list of DownwardAPIVolume file
                                          items:
                                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                            properties:
                                              fieldRef:
                                                description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                                properties:
                                                  apiVersion:
                                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                                    type: string
                                                  fieldPath:
                                                    description: Path of the field to select in the specified API version.
                                                    type: string
                                                required:
                                                - fieldPath
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              mode:
                                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                                  between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                                type: string
                                              resourceFieldRef:
                                                description: 'Selects a resource of the container: only resources limits and requests

                                                  (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                                properties:
                                                  containerName:
                                                    description: 'Container name: required for volumes, optional for env vars'
                                                    type: string
                                                  divisor:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Specifies the output format of the exposed resources, defaults to "1"
                                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                    x-kubernetes-int-or-string: true
                                                  resource:
                                                    description: 'Required: resource to select'
                                                    type: string
                                                required:
                                                - resource
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    secret:
                                      description: secret information about the secret data to project
                                      properties:
                                        items:
                                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                            Secret will be projected into the volume as a file whose name is the

                                            key and content is the value. If specified, the listed keys will be

                                            projected into the specified paths, and unlisted keys will not be

                                            present. If a key is specified which is not present in the Secret,

                                            the volume setup will error unless it is marked optional. Paths must be

                                            relative and may not contain the ''..'' path or start with ''..''.'
                                          items:
                                            description: Maps a string key to a path within a volume.
                                            properties:
                                              key:
                                                description: key is the key to project.
                                                type: string
                                              mode:
                                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'path is the relative path of the file to map the key to.

                                                  May not be an absolute path.

                                                  May not contain the path element ''..''.

                                                  May not start with the string ''..''.'
                                                type: string
                                            required:
                                            - key
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: optional field specify whether the Secret or its key must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    serviceAccountToken:
                                      description: serviceAccountToken is information about the serviceAccountToken data to project
                                      properties:
                                        audience:
                                          description: 'audience is the intended audience of the token. A recipient of a token

                                            must identify itself with an identifier specified in the audience of the

                                            token, and otherwise should reject the token. The audience defaults to the

                                            identifier of the apiserver.'
                                          type: string
                                        expirationSeconds:
                                          description: 'expirationSeconds is the requested duration of validity of the service

                                            account token. As the token approaches expiration, the kubelet volume

                                            plugin will proactively rotate the service account token. The kubelet will

                                            start trying to rotate the token if the token is older than 80 percent of

                                            its time to live or if the token is older than 24 hours.Defaults to 1 hour

                                            and must be at least 10 minutes.'
                                          format: int64
                                          type: integer
                                        path:
                                          description: 'path is the path relative to the mount point of the file to project the

                                            token into.'
                                          type: string
                                      required:
                                      - path
                                      type: object
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          quobyte:
                            description: 'quobyte represents a Quobyte mount on the host that shares a pod''s lifetime.

                              Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.'
                            properties:
                              group:
                                description: 'group to map volume access to

                                  Default is no group'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the Quobyte volume to be mounted with read-only permissions.

                                  Defaults to false.'
                                type: boolean
                              registry:
                                description: 'registry represents a single or multiple Quobyte Registry services

                                  specified as a string as host:port pair (multiple entries are separated with commas)

                                  which acts as the central registry for volumes'
                                type: string
                              tenant:
                                description: 'tenant owning the given Quobyte volume in the Backend

                                  Used with dynamically provisioned Quobyte volumes, value is set by the plugin'
                                type: string
                              user:
                                description: 'user to map volume access to

                                  Defaults to serivceaccount user'
                                type: string
                              volume:
                                description: volume is a string that references an already created Quobyte volume by name.
                                type: string
                            required:
                            - registry
                            - volume
                            type: object
                          rbd:
                            description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime.

                              Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.

                              More info: https://examples.k8s.io/volumes/rbd/README.md'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd'
                                type: string
                              image:
                                description: 'image is the rados image name.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              keyring:
                                default: /etc/ceph/keyring
                                description: 'keyring is the path to key ring for RBDUser.

                                  Default is /etc/ceph/keyring.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              monitors:
                                description: 'monitors is a collection of Ceph monitors.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              pool:
                                default: rbd
                                description: 'pool is the rados pool name.

                                  Default is rbd.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: boolean
                              secretRef:
                                description: 'secretRef is name of the authentication secret for RBDUser. If provided

                                  overrides keyring.

                                  Default is nil.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              user:
                                default: admin
                                description: 'user is the rados user name.

                                  Default is admin.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                            required:
                            - image
                            - monitors
                            type: object
                          scaleIO:
                            description: 'scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

                              Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.'
                            properties:
                              fsType:
                                default: xfs
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs".

                                  Default is "xfs".'
                                type: string
                              gateway:
                                description: gateway is the host address of the ScaleIO API Gateway.
                                type: string
                              protectionDomain:
                                description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
                                type: string
                              readOnly:
                                description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef references to the secret for ScaleIO user and other

                                  sensitive information. If this is not provided, Login operation will fail.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              sslEnabled:
                                description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
                                type: boolean
                              storageMode:
                                default: ThinProvisioned
                                description: 'storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

                                  Default is ThinProvisioned.'
                                type: string
                              storagePool:
                                description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
                                type: string
                              system:
                                description: system is the name of the storage system as configured in ScaleIO.
                                type: string
                              volumeName:
                                description: 'volumeName is the name of a volume already created in the ScaleIO system

                                  that is associated with this volume source.'
                                type: string
                            required:
                            - gateway
                            - secretRef
                            - system
                            type: object
                          secret:
                            description: 'secret represents a secret that should populate this volume.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                            properties:
                              defaultMode:
                                description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values

                                  for mode bits. Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: 'items If unspecified, each key-value pair in the Data field of the referenced

                                  Secret will be projected into the volume as a file whose name is the

                                  key and content is the value. If specified, the listed keys will be

                                  projected into the specified paths, and unlisted keys will not be

                                  present. If a key is specified which is not present in the Secret,

                                  the volume setup will error unless it is marked optional. Paths must be

                                  relative and may not contain the ''..'' path or start with ''..''.'
                                items:
                                  description: Maps a string key to a path within a volume.
                                  properties:
                                    key:
                                      description: key is the key to project.
                                      type: string
                                    mode:
                                      description: 'mode is Optional: mode bits used to set permissions on this file.

                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'path is the relative path of the file to map the key to.

                                        May not be an absolute path.

                                        May not contain the path element ''..''.

                                        May not start with the string ''..''.'
                                      type: string
                                  required:
                                  - key
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              optional:
                                description: optional field specify whether the Secret or its keys must be defined
                                type: boolean
                              secretName:
                                description: 'secretName is the name of the secret in the pod''s namespace to use.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                                type: string
                            type: object
                          storageos:
                            description: 'storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

                              Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef specifies the secret to use for obtaining the StorageOS API

                                  credentials.  If not specified, default values will be attempted.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              volumeName:
                                description: 'volumeName is the human-readable name of the StorageOS volume.  Volume

                                  names are only unique within a namespace.'
                                type: string
                              volumeNamespace:
                                description: 'volumeNamespace specifies the scope of the volume within StorageOS.  If no

                                  namespace is specified then the Pod''s namespace will be used.  This allows the

                                  Kubernetes name scoping to be mirrored within StorageOS for tighter integration.

                                  Set VolumeName to any name to override the default behaviour.

                                  Set to "default" if you are not using namespaces within StorageOS.

                                  Namespaces that do not pre-exist within StorageOS will be created.'
                                type: string
                            type: object
                          vsphereVolume:
                            description: 'vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.

                              Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type

                              are redirected to the csi.vsphere.vmware.com CSI driver.'
                            properties:
                              fsType:
                                description: 'fsType is filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              storagePolicyID:
                                description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
                                type: string
                              storagePolicyName:
                                description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
                                type: string
                              volumePath:
                                description: volumePath is the path that identifies vSphere volume vmdk
                                type: string
                            required:
                            - volumePath
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                  type: object
                maxItems: 200
                type: array
                x-kubernetes-validations:
                - message: template must have at most one template type
                  rule: 'self.all(t, (has(t.container) ? 1 : 0) + (has(t.script) ? 1 : 0) + (has(t.dag) ? 1 : 0) + (has(t.steps) ? 1 : 0) + (has(t.resource) ? 1 : 0) + (has(t.suspend) ? 1 : 0) + (has(t.containerSet) ? 1 : 0) + (has(t.data) ? 1 : 0) + (has(t.http) ? 1 : 0) + (has(t.plugin) ? 1 : 0) <= 1)'
                - message: timeout cannot be applied to steps or dag templates
                  rule: self.all(t, !(has(t.timeout) && t.timeout != "" && (has(t.steps) || has(t.dag))))
                - message: activeDeadlineSeconds is only valid for leaf templates
                  rule: self.all(t, !(has(t.activeDeadlineSeconds) && (has(t.steps) || has(t.dag))))
              tolerations:
                description: Tolerations to apply to workflow pods.
                items:
                  description: 'The pod this Toleration is attached to tolerates any taint that matches

                    the triple <key,value,effect> using the matching operator <operator>.'
                  properties:
                    effect:
                      description: 'Effect indicates the taint effect to match. Empty means match all taint effects.

                        When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.'
                      type: string
                    key:
                      description: 'Key is the taint key that the toleration applies to. Empty means match all taint keys.

                        If the key is empty, operator must be Exists; this combination means to match all values and all keys.'
                      type: string
                    operator:
                      description: 'Operator represents a key''s relationship to the value.

                        Valid operators are Exists and Equal. Defaults to Equal.

                        Exists is equivalent to wildcard for value, so that a pod can

                        tolerate all taints of a particular category.'
                      type: string
                    tolerationSeconds:
                      description: 'TolerationSeconds represents the period of time the toleration (which must be

                        of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,

                        it is not set, which means tolerate the taint forever (do not evict). Zero and

                        negative values will be treated as 0 (evict immediately) by the system.'
                      format: int64
                      type: integer
                    value:
                      description: 'Value is the taint value the toleration matches to.

                        If the operator is Exists, the value should be empty, otherwise just a regular string.'
                      type: string
                  type: object
                type: array
              ttlStrategy:
                description: 'TTLStrategy limits the lifetime of a Workflow that has finished execution depending on if it

                  Succeeded or Failed. If this struct is set, once the Workflow finishes, it will be

                  deleted after the time to live expires. If this field is unset,

                  the controller config map will hold the default values.'
                properties:
                  secondsAfterCompletion:
                    description: SecondsAfterCompletion is the number of seconds to live after completion
                    format: int32
                    type: integer
                  secondsAfterFailure:
                    description: SecondsAfterFailure is the number of seconds to live after failure
                    format: int32
                    type: integer
                  secondsAfterSuccess:
                    description: SecondsAfterSuccess is the number of seconds to live after success
                    format: int32
                    type: integer
                type: object
              volumeClaimGC:
                description: VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows
                properties:
                  strategy:
                    description: Strategy is the strategy to use. One of "OnWorkflowCompletion", "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
                    type: string
                type: object
              volumeClaimTemplates:
                description: 'VolumeClaimTemplates is a list of claims that containers are allowed to reference.

                  The Workflow controller will create the claims at the beginning of the workflow

                  and delete the claims upon completion of the workflow'
                items:
                  description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
                  properties:
                    apiVersion:
                      description: 'APIVersion defines the versioned schema of this representation of an object.

                        Servers should convert recognized schemas to the latest internal value, and

                        may reject unrecognized values.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                      type: string
                    kind:
                      description: 'Kind is a string value representing the REST resource this object represents.

                        Servers may infer this from the endpoint the client submits requests to.

                        Cannot be updated.

                        In CamelCase.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    metadata:
                      description: 'Standard object''s metadata.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        finalizers:
                          items:
                            type: string
                          type: array
                        generateName:
                          type: string
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                        name:
                          type: string
                        namespace:
                          type: string
                      type: object
                    spec:
                      description: 'spec defines the desired characteristics of a volume requested by a pod author.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        accessModes:
                          description: 'accessModes contains the desired access modes the volume should have.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        dataSource:
                          description: 'dataSource field can be used to specify either:

                            * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                            * An existing PVC (PersistentVolumeClaim)

                            If the provisioner or an external controller can support the specified data source,

                            it will create a new volume based on the contents of the specified data source.

                            When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                            and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                            If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                          properties:
                            apiGroup:
                              description: 'APIGroup is the group for the resource being referenced.

                                If APIGroup is not specified, the specified Kind must be in the core API group.

                                For any other third-party types, APIGroup is required.'
                              type: string
                            kind:
                              description: Kind is the type of resource being referenced
                              type: string
                            name:
                              description: Name is the name of resource being referenced
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                          x-kubernetes-map-type: atomic
                        dataSourceRef:
                          description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                          properties:
                            apiGroup:
                              description: 'APIGroup is the group for the resource being referenced.

                                If APIGroup is not specified, the specified Kind must be in the core API group.

                                For any other third-party types, APIGroup is required.'
                              type: string
                            kind:
                              description: Kind is the type of resource being referenced
                              type: string
                            name:
                              description: Name is the name of resource being referenced
                              type: string
                            namespace:
                              description: 'Namespace is the namespace of resource being referenced

                                Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                        resources:
                          description: 'resources represents the minimum resources the volume should have.

                            If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                            that are lower than previous value but must still be higher than capacity recorded in the

                            status field of the claim.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                          properties:
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        selector:
                          description: selector is a label query over volumes to consider for binding.
                          properties:
                            matchExpressions:
                              description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                              items:
                                description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                  relates the key and values.'
                                properties:
                                  key:
                                    description: key is the label key that the selector applies to.
                                    type: string
                                  operator:
                                    description: 'operator represents a key''s relationship to a set of values.

                                      Valid operators are In, NotIn, Exists and DoesNotExist.'
                                    type: string
                                  values:
                                    description: 'values is an array of string values. If the operator is In or NotIn,

                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                      the values array must be empty. This array is replaced during a strategic

                                      merge patch.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            matchLabels:
                              additionalProperties:
                                type: string
                              description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                map is equivalent to an element of matchExpressions, whose key field is "key", the

                                operator is "In", and the values array contains only "value". The requirements are ANDed.'
                              type: object
                          type: object
                          x-kubernetes-map-type: atomic
                        storageClassName:
                          description: 'storageClassName is the name of the StorageClass required by the claim.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                          type: string
                        volumeAttributesClassName:
                          description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                            If specified, the CSI driver will create or update the volume with the attributes defined

                            in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                            it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                            will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                            If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                            will be set by the persistentvolume controller if it exists.

                            If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                            set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                            exists.

                            More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                            (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                          type: string
                        volumeMode:
                          description: 'volumeMode defines what type of volume is required by the claim.

                            Value of Filesystem is implied when not included in claim spec.'
                          type: string
                        volumeName:
                          description: volumeName is the binding reference to the PersistentVolume backing this claim.
                          type: string
                      type: object
                    status:
                      description: 'status represents the current information/status of a persistent volume claim.

                        Read-only.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        accessModes:
                          description: 'accessModes contains the actual access modes the volume backing the PVC has.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        allocatedResourceStatuses:
                          additionalProperties:
                            description: 'When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource

                              that it does not recognizes, then it should ignore that update and let other controllers

                              handle it.'
                            type: string
                          description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
                          type: object
                          x-kubernetes-map-type: granular
                        allocatedResources:
                          additionalProperties:
                            anyOf:
                            - type: integer
                            - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
                          type: object
                        capacity:
                          additionalProperties:
                            anyOf:
                            - type: integer
                            - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: capacity represents the actual resources of the underlying volume.
                          type: object
                        conditions:
                          description: 'conditions is the current Condition of persistent volume claim. If underlying persistent volume is being

                            resized then the Condition will be set to ''Resizing''.'
                          items:
                            description: PersistentVolumeClaimCondition contains details about state of pvc
                            properties:
                              lastProbeTime:
                                description: lastProbeTime is the time we probed the condition.
                                format: date-time
                                type: string
                              lastTransitionTime:
                                description: lastTransitionTime is the time the condition transitioned from one status to another.
                                format: date-time
                                type: string
                              message:
                                description: message is the human-readable message indicating details about last transition.
                                type: string
                              reason:
                                description: 'reason is a unique, this should be a short, machine understandable string that gives the reason

                                  for condition''s last transition. If it reports "Resizing" that means the underlying

                                  persistent volume is being resized.'
                                type: string
                              status:
                                description: 'Status is the status of the condition.

                                  Can be True, False, Unknown.

                                  More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required'
                                type: string
                              type:
                                description: 'Type is the type of the condition.

                                  More info: 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'
                                type: string
                            required:
                            - status
                            - type
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - type
                          x-kubernetes-list-type: map
                        currentVolumeAttributesClassName:
                          description: 'currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.

                            When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim

                            This is a beta field and requires enabling VolumeAttributesClass feature (off by default).'
                          type: string
                        modifyVolumeStatus:
                          description: 'ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.

                            When this is unset, there is no ModifyVolume operation being attempted.

                            This is a beta field and requires enabling VolumeAttributesClass feature (off by default).'
                          properties:
                            status:
                              description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n   Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n   the specified VolumeAttributesClass not existing.\n - InProgress\n   InProgress indicates that the volume is being modified.\n - Infeasible\n  Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t  resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately."
                              type: string
                            targetVolumeAttributesClassName:
                              description: targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled
                              type: string
                          required:
                          - status
                          type: object
                        phase:
                          description: phase represents the current phase of PersistentVolumeClaim.
                          type: string
                      type: object
                  type: object
                type: array
              volumes:
                description: Volumes is a list of volumes that can be mounted by containers in a workflow.
                items:
                  description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
                  properties:
                    awsElasticBlockStore:
                      description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree

                        awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: string
                        partition:
                          description: 'partition is the partition in the volume that you want to mount.

                            If omitted, the default is to mount by volume name.

                            Examples: For volume /dev/sda1, you specify the partition as "1".

                            Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
                          format: int32
                          type: integer
                        readOnly:
                          description: 'readOnly value true will force the readOnly setting in VolumeMounts.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: boolean
                        volumeID:
                          description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: string
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      description: 'azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

                        Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type

                        are redirected to the disk.csi.azure.com CSI driver.'
                      properties:
                        cachingMode:
                          description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                          type: string
                        diskName:
                          description: diskName is the Name of the data disk in the blob storage
                          type: string
                        diskURI:
                          description: diskURI is the URI of data disk in the blob storage
                          type: string
                        fsType:
                          default: ext4
                          description: 'fsType is Filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        kind:
                          description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
                          type: string
                        readOnly:
                          default: false
                          description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      description: 'azureFile represents an Azure File Service mount on the host and bind mount to the pod.

                        Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type

                        are redirected to the file.csi.azure.com CSI driver.'
                      properties:
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretName:
                          description: secretName is the  name of secret that contains Azure Storage Account Name and Key
                          type: string
                        shareName:
                          description: shareName is the azure share Name
                          type: string
                      required:
                      - secretName
                      - shareName
                      type: object
                    cephfs:
                      description: 'cephFS represents a Ceph FS mount on the host that shares a pod''s lifetime.

                        Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.'
                      properties:
                        monitors:
                          description: 'monitors is Required: Monitors is a collection of Ceph monitors

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        path:
                          description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
                          type: string
                        readOnly:
                          description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: boolean
                        secretFile:
                          description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: string
                        secretRef:
                          description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        user:
                          description: 'user is optional: User is the rados user name, default is admin

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      description: 'cinder represents a cinder volume attached and mounted on kubelets host machine.

                        Deprecated: Cinder is deprecated. All operations for the in-tree cinder type

                        are redirected to the cinder.csi.openstack.org CSI driver.

                        More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: boolean
                        secretRef:
                          description: 'secretRef is optional: points to a secret object containing parameters used to connect

                            to OpenStack.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        volumeID:
                          description: 'volumeID used to identify the volume in cinder.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      description: configMap represents a configMap that should populate this volume
                      properties:
                        defaultMode:
                          description: 'defaultMode is optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                            ConfigMap will be projected into the volume as a file whose name is the

                            key and content is the value. If specified, the listed keys will be

                            projected into the specified paths, and unlisted keys will not be

                            present. If a key is specified which is not present in the ConfigMap,

                            the volume setup will error unless it is marked optional. Paths must be

                            relative and may not contain the ''..'' path or start with ''..''.'
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
                                type: string
                              mode:
                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'path is the relative path of the file to map the key to.

                                  May not be an absolute path.

                                  May not contain the path element ''..''.

                                  May not start with the string ''..''.'
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        name:
                          default: ''
                          description: 'Name of the referent.

                            This field is effectively required, but due to backwards compatibility is

                            allowed to be empty. Instances of this type with an empty value here are

                            almost certainly wrong.

                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        optional:
                          description: optional specify whether the ConfigMap or its keys must be defined
                          type: boolean
                      type: object
                      x-kubernetes-map-type: atomic
                    csi:
                      description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
                      properties:
                        driver:
                          description: 'driver is the name of the CSI driver that handles this volume.

                            Consult with your admin for the correct name as registered in the cluster.'
                          type: string
                        fsType:
                          description: 'fsType to mount. Ex. "ext4", "xfs", "ntfs".

                            If not provided, the empty value is passed to the associated CSI driver

                            which will determine the default filesystem to apply.'
                          type: string
                        nodePublishSecretRef:
                          description: 'nodePublishSecretRef is a reference to the secret object containing

                            sensitive information to pass to the CSI driver to complete the CSI

                            NodePublishVolume and NodeUnpublishVolume calls.

                            This field is optional, and  may be empty if no secret is required. If the

                            secret object contains more than one secret, all secret references are passed.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        readOnly:
                          description: 'readOnly specifies a read-only configuration for the volume.

                            Defaults to false (read/write).'
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          description: 'volumeAttributes stores driver-specific properties that are passed to the CSI

                            driver. Consult your driver''s documentation for supported values.'
                          type: object
                      required:
                      - driver
                      type: object
                    downwardAPI:
                      description: downwardAPI represents downward API about the pod that should populate this volume
                      properties:
                        defaultMode:
                          description: 'Optional: mode bits to use on created files by default. Must be a

                            Optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: Items is a list of downward API volume file
                          items:
                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                            properties:
                              fieldRef:
                                description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                properties:
                                  apiVersion:
                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                    type: string
                                  fieldPath:
                                    description: Path of the field to select in the specified API version.
                                    type: string
                                required:
                                - fieldPath
                                type: object
                                x-kubernetes-map-type: atomic
                              mode:
                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                  between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                type: string
                              resourceFieldRef:
                                description: 'Selects a resource of the container: only resources limits and requests

                                  (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                properties:
                                  containerName:
                                    description: 'Container name: required for volumes, optional for env vars'
                                    type: string
                                  divisor:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Specifies the output format of the exposed resources, defaults to "1"
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  resource:
                                    description: 'Required: resource to select'
                                    type: string
                                required:
                                - resource
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    emptyDir:
                      description: 'emptyDir represents a temporary directory that shares a pod''s lifetime.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                      properties:
                        medium:
                          description: 'medium represents what type of storage medium should back this directory.

                            The default is "" which means to use the node''s default medium.

                            Must be an empty string (default) or Memory.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                          type: string
                        sizeLimit:
                          anyOf:
                          - type: integer
                          - type: string
                          description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume.

                            The size limit is also applicable for memory medium.

                            The maximum usage on memory medium EmptyDir would be the minimum value between

                            the SizeLimit specified here and the sum of memory limits of all containers in a pod.

                            The default is nil which means that the limit is undefined.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                      type: object
                    ephemeral:
                      description: "ephemeral represents a volume that is handled by a cluster storage driver.\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n   tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\n   information on the connection between this volume type\n   and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time."
                      properties:
                        volumeClaimTemplate:
                          description: 'Will be used to create a stand-alone PVC to provision the volume.

                            The pod in which this EphemeralVolumeSource is embedded will be the

                            owner of the PVC, i.e. the PVC will be deleted together with the

                            pod.  The name of the PVC will be `<pod name>-<volume name>` where

                            `<volume name>` is the name from the `PodSpec.Volumes` array

                            entry. Pod validation will reject the pod if the concatenated name

                            is not valid for a PVC (for example, too long).


                            An existing PVC with that name that is not owned by the pod

                            will *not* be used for the pod to avoid using an unrelated

                            volume by mistake. Starting the pod is then blocked until

                            the unrelated PVC is removed. If such a pre-created PVC is

                            meant to be used by the pod, the PVC has to updated with an

                            owner reference to the pod once the pod exists. Normally

                            this should not be necessary, but it may be useful when

                            manually reconstructing a broken cluster.


                            This field is read-only and no changes will be made by Kubernetes

                            to the PVC after it has been created.


                            Required, must not be nil.'
                          properties:
                            metadata:
                              description: 'May contain labels and annotations that will be copied into the PVC

                                when creating it. No other fields are allowed and will be rejected during

                                validation.'
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                finalizers:
                                  items:
                                    type: string
                                  type: array
                                generateName:
                                  type: string
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                name:
                                  type: string
                                namespace:
                                  type: string
                              type: object
                            spec:
                              description: 'The specification for the PersistentVolumeClaim. The entire content is

                                copied unchanged into the PVC that gets created from this

                                template. The same fields as in a PersistentVolumeClaim

                                are also valid here.'
                              properties:
                                accessModes:
                                  description: 'accessModes contains the desired access modes the volume should have.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                dataSource:
                                  description: 'dataSource field can be used to specify either:

                                    * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                    * An existing PVC (PersistentVolumeClaim)

                                    If the provisioner or an external controller can support the specified data source,

                                    it will create a new volume based on the contents of the specified data source.

                                    When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                    and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                    If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                  properties:
                                    apiGroup:
                                      description: 'APIGroup is the group for the resource being referenced.

                                        If APIGroup is not specified, the specified Kind must be in the core API group.

                                        For any other third-party types, APIGroup is required.'
                                      type: string
                                    kind:
                                      description: Kind is the type of resource being referenced
                                      type: string
                                    name:
                                      description: Name is the name of resource being referenced
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                  x-kubernetes-map-type: atomic
                                dataSourceRef:
                                  description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                                  properties:
                                    apiGroup:
                                      description: 'APIGroup is the group for the resource being referenced.

                                        If APIGroup is not specified, the specified Kind must be in the core API group.

                                        For any other third-party types, APIGroup is required.'
                                      type: string
                                    kind:
                                      description: Kind is the type of resource being referenced
                                      type: string
                                    name:
                                      description: Name is the name of resource being referenced
                                      type: string
                                    namespace:
                                      description: 'Namespace is the namespace of resource being referenced

                                        Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                        (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                resources:
                                  description: 'resources represents the minimum resources the volume should have.

                                    If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                    that are lower than previous value but must still be higher than capacity recorded in the

                                    status field of the claim.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                  properties:
                                    limits:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      description: 'Limits describes the maximum amount of compute resources allowed.

                                        More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                      type: object
                                    requests:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      description: 'Requests describes the minimum amount of compute resources required.

                                        If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                        otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                        More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                      type: object
                                  type: object
                                selector:
                                  description: selector is a label query over volumes to consider for binding.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                storageClassName:
                                  description: 'storageClassName is the name of the StorageClass required by the claim.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                  type: string
                                volumeAttributesClassName:
                                  description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                    If specified, the CSI driver will create or update the volume with the attributes defined

                                    in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                    it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                    will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                    If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                    will be set by the persistentvolume controller if it exists.

                                    If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                    set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                    exists.

                                    More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                    (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                                  type: string
                                volumeMode:
                                  description: 'volumeMode defines what type of volume is required by the claim.

                                    Value of Filesystem is implied when not included in claim spec.'
                                  type: string
                                volumeName:
                                  description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                  type: string
                              type: object
                          required:
                          - spec
                          type: object
                      type: object
                    fc:
                      description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        lun:
                          description: 'lun is Optional: FC target lun number'
                          format: int32
                          type: integer
                        readOnly:
                          description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        targetWWNs:
                          description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        wwids:
                          description: 'wwids Optional: FC volume world wide identifiers (wwids)

                            Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    flexVolume:
                      description: 'flexVolume represents a generic volume resource that is

                        provisioned/attached using an exec based plugin.

                        Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.'
                      properties:
                        driver:
                          description: driver is the name of the driver to use for this volume.
                          type: string
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.'
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          description: 'options is Optional: this field holds extra command options if any.'
                          type: object
                        readOnly:
                          description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef is Optional: secretRef is reference to the secret object containing

                            sensitive information to pass to the plugin scripts. This may be

                            empty if no secret object is specified. If the secret object

                            contains more than one secret, all secrets are passed to the plugin

                            scripts.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                      required:
                      - driver
                      type: object
                    flocker:
                      description: 'flocker represents a Flocker volume attached to a kubelet''s host machine. This depends on the Flocker control service being running.

                        Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.'
                      properties:
                        datasetName:
                          description: 'datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker

                            should be considered as deprecated'
                          type: string
                        datasetUUID:
                          description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
                          type: string
                      type: object
                    gcePersistentDisk:
                      description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree

                        gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                      properties:
                        fsType:
                          description: 'fsType is filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: string
                        partition:
                          description: 'partition is the partition in the volume that you want to mount.

                            If omitted, the default is to mount by volume name.

                            Examples: For volume /dev/sda1, you specify the partition as "1".

                            Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          format: int32
                          type: integer
                        pdName:
                          description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
                      description: 'gitRepo represents a git repository at a particular revision.

                        Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an

                        EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir

                        into the Pod''s container.'
                      properties:
                        directory:
                          description: 'directory is the target directory name.

                            Must not contain or start with ''..''.  If ''.'' is supplied, the volume directory will be the

                            git repository.  Otherwise, if specified, the volume will contain the git repository in

                            the subdirectory with the given name.'
                          type: string
                        repository:
                          description: repository is the URL
                          type: string
                        revision:
                          description: revision is the commit hash for the specified revision.
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
                      description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime.

                        Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.

                        More info: https://examples.k8s.io/volumes/glusterfs/README.md'
                      properties:
                        endpoints:
                          description: 'endpoints is the endpoint name that details Glusterfs topology.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: string
                        path:
                          description: 'path is the Glusterfs volume path.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions.

                            Defaults to false.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
                      description: 'hostPath represents a pre-existing file or directory on the host

                        machine that is directly exposed to the container. This is generally

                        used for system agents or other privileged things that are allowed

                        to see the host machine. Most containers will NOT need this.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                      properties:
                        path:
                          description: 'path of the directory on the host.

                            If the path is a symlink, it will follow the link to the real path.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                          type: string
                        type:
                          description: 'type for HostPath Volume

                            Defaults to ""

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                          type: string
                      required:
                      - path
                      type: object
                    image:
                      description: 'image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet''s host machine.

                        The volume is resolved at pod startup depending on which PullPolicy value is provided:


                        - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                        - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                        - IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.


                        The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.

                        A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.

                        The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.

                        The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.

                        The volume will be mounted read-only (ro) and non-executable files (noexec).

                        Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.

                        The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.'
                      properties:
                        pullPolicy:
                          description: 'Policy for pulling OCI objects. Possible values are:

                            Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                            Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                            IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.'
                          type: string
                        reference:
                          description: 'Required: Image or artifact reference to be used.

                            Behaves in the same way as pod.spec.containers[*].image.

                            Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                      type: object
                    iscsi:
                      description: 'iscsi represents an ISCSI Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        More info: https://examples.k8s.io/volumes/iscsi/README.md'
                      properties:
                        chapAuthDiscovery:
                          description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
                          type: boolean
                        chapAuthSession:
                          description: chapAuthSession defines whether support iSCSI Session CHAP authentication
                          type: boolean
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi'
                          type: string
                        initiatorName:
                          description: 'initiatorName is the custom iSCSI Initiator Name.

                            If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface

                            <target portal>:<volume name> will be created for the connection.'
                          type: string
                        iqn:
                          description: iqn is the target iSCSI Qualified Name.
                          type: string
                        iscsiInterface:
                          default: default
                          description: 'iscsiInterface is the interface Name that uses an iSCSI transport.

                            Defaults to ''default'' (tcp).'
                          type: string
                        lun:
                          description: lun represents iSCSI Target Lun number.
                          format: int32
                          type: integer
                        portals:
                          description: 'portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port

                            is other than default (typically TCP ports 860 and 3260).'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.'
                          type: boolean
                        secretRef:
                          description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        targetPortal:
                          description: 'targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port

                            is other than default (typically TCP ports 860 and 3260).'
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
                      description: 'name of the volume.

                        Must be a DNS_LABEL and unique within the pod.

                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                    nfs:
                      description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                      properties:
                        path:
                          description: 'path that is exported by the NFS server.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the NFS export to be mounted with read-only permissions.

                            Defaults to false.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: boolean
                        server:
                          description: 'server is the hostname or IP address of the NFS server.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
                      description: 'persistentVolumeClaimVolumeSource represents a reference to a

                        PersistentVolumeClaim in the same namespace.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        claimName:
                          description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                          type: string
                        readOnly:
                          description: 'readOnly Will force the ReadOnly setting in VolumeMounts.

                            Default false.'
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
                      description: 'photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.

                        Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        pdID:
                          description: pdID is the ID that identifies Photon Controller persistent disk
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
                      description: 'portworxVolume represents a portworx volume attached and mounted on kubelets host machine.

                        Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type

                        are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate

                        is on.'
                      properties:
                        fsType:
                          description: 'fSType represents the filesystem type to mount

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        volumeID:
                          description: volumeID uniquely identifies a Portworx volume
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
                      description: projected items for all in one resources secrets, configmaps, and downward API
                      properties:
                        defaultMode:
                          description: 'defaultMode are the mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        sources:
                          description: 'sources is the list of volume projections. Each entry in this list

                            handles one source.'
                          items:
                            description: 'Projection that may be projected along with other supported volume types.

                              Exactly one of these fields must be set.'
                            properties:
                              clusterTrustBundle:
                                description: 'ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field

                                  of ClusterTrustBundle objects in an auto-updating file.


                                  Alpha, gated by the ClusterTrustBundleProjection feature gate.


                                  ClusterTrustBundle objects can either be selected by name, or by the

                                  combination of signer name and a label selector.


                                  Kubelet performs aggressive normalization of the PEM contents written

                                  into the pod filesystem.  Esoteric PEM features such as inter-block

                                  comments and block headers are stripped.  Certificates are deduplicated.

                                  The ordering of certificates within the file is arbitrary, and Kubelet

                                  may change the order over time.'
                                properties:
                                  labelSelector:
                                    description: 'Select all ClusterTrustBundles that match this label selector.  Only has

                                      effect if signerName is set.  Mutually-exclusive with name.  If unset,

                                      interpreted as "match nothing".  If set but empty, interpreted as "match

                                      everything".'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  name:
                                    description: 'Select a single ClusterTrustBundle by object name.  Mutually-exclusive

                                      with signerName and labelSelector.'
                                    type: string
                                  optional:
                                    description: 'If true, don''t block pod startup if the referenced ClusterTrustBundle(s)

                                      aren''t available.  If using name, then the named ClusterTrustBundle is

                                      allowed not to exist.  If using signerName, then the combination of

                                      signerName and labelSelector is allowed to match zero

                                      ClusterTrustBundles.'
                                    type: boolean
                                  path:
                                    description: Relative path from the volume root to write the bundle.
                                    type: string
                                  signerName:
                                    description: 'Select all ClusterTrustBundles that match this signer name.

                                      Mutually-exclusive with name.  The contents of all selected

                                      ClusterTrustBundles will be unified and deduplicated.'
                                    type: string
                                required:
                                - path
                                type: object
                              configMap:
                                description: configMap information about the configMap data to project
                                properties:
                                  items:
                                    description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                      ConfigMap will be projected into the volume as a file whose name is the

                                      key and content is the value. If specified, the listed keys will be

                                      projected into the specified paths, and unlisted keys will not be

                                      present. If a key is specified which is not present in the ConfigMap,

                                      the volume setup will error unless it is marked optional. Paths must be

                                      relative and may not contain the ''..'' path or start with ''..''.'
                                    items:
                                      description: Maps a string key to a path within a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file.

                                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'path is the relative path of the file to map the key to.

                                            May not be an absolute path.

                                            May not contain the path element ''..''.

                                            May not start with the string ''..''.'
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: optional specify whether the ConfigMap or its keys must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              downwardAPI:
                                description: downwardAPI information about the downwardAPI data to project
                                properties:
                                  items:
                                    description: Items is a list of DownwardAPIVolume file
                                    items:
                                      description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                      properties:
                                        fieldRef:
                                          description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        mode:
                                          description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                            between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                          type: string
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              secret:
                                description: secret information about the secret data to project
                                properties:
                                  items:
                                    description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                      Secret will be projected into the volume as a file whose name is the

                                      key and content is the value. If specified, the listed keys will be

                                      projected into the specified paths, and unlisted keys will not be

                                      present. If a key is specified which is not present in the Secret,

                                      the volume setup will error unless it is marked optional. Paths must be

                                      relative and may not contain the ''..'' path or start with ''..''.'
                                    items:
                                      description: Maps a string key to a path within a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file.

                                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'path is the relative path of the file to map the key to.

                                            May not be an absolute path.

                                            May not contain the path element ''..''.

                                            May not start with the string ''..''.'
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: optional field specify whether the Secret or its key must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              serviceAccountToken:
                                description: serviceAccountToken is information about the serviceAccountToken data to project
                                properties:
                                  audience:
                                    description: 'audience is the intended audience of the token. A recipient of a token

                                      must identify itself with an identifier specified in the audience of the

                                      token, and otherwise should reject the token. The audience defaults to the

                                      identifier of the apiserver.'
                                    type: string
                                  expirationSeconds:
                                    description: 'expirationSeconds is the requested duration of validity of the service

                                      account token. As the token approaches expiration, the kubelet volume

                                      plugin will proactively rotate the service account token. The kubelet will

                                      start trying to rotate the token if the token is older than 80 percent of

                                      its time to live or if the token is older than 24 hours.Defaults to 1 hour

                                      and must be at least 10 minutes.'
                                    format: int64
                                    type: integer
                                  path:
                                    description: 'path is the path relative to the mount point of the file to project the

                                      token into.'
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    quobyte:
                      description: 'quobyte represents a Quobyte mount on the host that shares a pod''s lifetime.

                        Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.'
                      properties:
                        group:
                          description: 'group to map volume access to

                            Default is no group'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the Quobyte volume to be mounted with read-only permissions.

                            Defaults to false.'
                          type: boolean
                        registry:
                          description: 'registry represents a single or multiple Quobyte Registry services

                            specified as a string as host:port pair (multiple entries are separated with commas)

                            which acts as the central registry for volumes'
                          type: string
                        tenant:
                          description: 'tenant owning the given Quobyte volume in the Backend

                            Used with dynamically provisioned Quobyte volumes, value is set by the plugin'
                          type: string
                        user:
                          description: 'user to map volume access to

                            Defaults to serivceaccount user'
                          type: string
                        volume:
                          description: volume is a string that references an already created Quobyte volume by name.
                          type: string
                      required:
                      - registry
                      - volume
                      type: object
                    rbd:
                      description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime.

                        Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.

                        More info: https://examples.k8s.io/volumes/rbd/README.md'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd'
                          type: string
                        image:
                          description: 'image is the rados image name.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        keyring:
                          default: /etc/ceph/keyring
                          description: 'keyring is the path to key ring for RBDUser.

                            Default is /etc/ceph/keyring.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        monitors:
                          description: 'monitors is a collection of Ceph monitors.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        pool:
                          default: rbd
                          description: 'pool is the rados pool name.

                            Default is rbd.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: boolean
                        secretRef:
                          description: 'secretRef is name of the authentication secret for RBDUser. If provided

                            overrides keyring.

                            Default is nil.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        user:
                          default: admin
                          description: 'user is the rados user name.

                            Default is admin.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                      required:
                      - image
                      - monitors
                      type: object
                    scaleIO:
                      description: 'scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

                        Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.'
                      properties:
                        fsType:
                          default: xfs
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs".

                            Default is "xfs".'
                          type: string
                        gateway:
                          description: gateway is the host address of the ScaleIO API Gateway.
                          type: string
                        protectionDomain:
                          description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
                          type: string
                        readOnly:
                          description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef references to the secret for ScaleIO user and other

                            sensitive information. If this is not provided, Login operation will fail.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        sslEnabled:
                          description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
                          type: boolean
                        storageMode:
                          default: ThinProvisioned
                          description: 'storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

                            Default is ThinProvisioned.'
                          type: string
                        storagePool:
                          description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
                          type: string
                        system:
                          description: system is the name of the storage system as configured in ScaleIO.
                          type: string
                        volumeName:
                          description: 'volumeName is the name of a volume already created in the ScaleIO system

                            that is associated with this volume source.'
                          type: string
                      required:
                      - gateway
                      - secretRef
                      - system
                      type: object
                    secret:
                      description: 'secret represents a secret that should populate this volume.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                      properties:
                        defaultMode:
                          description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values

                            for mode bits. Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: 'items If unspecified, each key-value pair in the Data field of the referenced

                            Secret will be projected into the volume as a file whose name is the

                            key and content is the value. If specified, the listed keys will be

                            projected into the specified paths, and unlisted keys will not be

                            present. If a key is specified which is not present in the Secret,

                            the volume setup will error unless it is marked optional. Paths must be

                            relative and may not contain the ''..'' path or start with ''..''.'
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
                                type: string
                              mode:
                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'path is the relative path of the file to map the key to.

                                  May not be an absolute path.

                                  May not contain the path element ''..''.

                                  May not start with the string ''..''.'
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        optional:
                          description: optional field specify whether the Secret or its keys must be defined
                          type: boolean
                        secretName:
                          description: 'secretName is the name of the secret in the pod''s namespace to use.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                          type: string
                      type: object
                    storageos:
                      description: 'storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

                        Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef specifies the secret to use for obtaining the StorageOS API

                            credentials.  If not specified, default values will be attempted.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        volumeName:
                          description: 'volumeName is the human-readable name of the StorageOS volume.  Volume

                            names are only unique within a namespace.'
                          type: string
                        volumeNamespace:
                          description: 'volumeNamespace specifies the scope of the volume within StorageOS.  If no

                            namespace is specified then the Pod''s namespace will be used.  This allows the

                            Kubernetes name scoping to be mirrored within StorageOS for tighter integration.

                            Set VolumeName to any name to override the default behaviour.

                            Set to "default" if you are not using namespaces within StorageOS.

                            Namespaces that do not pre-exist within StorageOS will be created.'
                          type: string
                      type: object
                    vsphereVolume:
                      description: 'vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.

                        Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type

                        are redirected to the csi.vsphere.vmware.com CSI driver.'
                      properties:
                        fsType:
                          description: 'fsType is filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        storagePolicyID:
                          description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
                          type: string
                        storagePolicyName:
                          description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
                          type: string
                        volumePath:
                          description: volumePath is the path that identifies vSphere volume vmdk
                          type: string
                      required:
                      - volumePath
                      type: object
                  required:
                  - name
                  type: object
                type: array
              workflowMetadata:
                description: WorkflowMetadata contains some metadata of the workflow to refer to
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                  labelsFrom:
                    additionalProperties:
                      properties:
                        expression:
                          type: string
                      required:
                      - expression
                      type: object
                    type: object
                type: object
              workflowTemplateRef:
                description: WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution
                properties:
                  clusterScope:
                    description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                    type: boolean
                  name:
                    description: Name is the resource name of the workflow template.
                    type: string
                type: object
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  name: cronworkflows.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: CronWorkflow
    listKind: CronWorkflowList
    plural: cronworkflows
    shortNames:
    - cwf
    - cronwf
    singular: cronworkflow
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: CronWorkflow is the definition of a scheduled workflow resource
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object.

              Servers should convert recognized schemas to the latest internal value, and

              may reject unrecognized values.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents.

              Servers may infer this from the endpoint the client submits requests to.

              Cannot be updated.

              In CamelCase.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: CronWorkflowSpec is the specification of a CronWorkflow
            properties:
              concurrencyPolicy:
                description: ConcurrencyPolicy is the K8s-style concurrency policy that will be used
                enum:
                - Allow
                - Forbid
                - Replace
                type: string
              failedJobsHistoryLimit:
                description: FailedJobsHistoryLimit is the number of failed jobs to be kept at a time
                format: int32
                type: integer
              schedules:
                description: 'v3.6 and after: Schedules is a list of schedules to run the Workflow in Cron format'
                items:
                  pattern: "^(@(yearly|annually|monthly|weekly|daily|midnight|hourly)|@every\\s+([0-9]+(ns|us|\xB5s|ms|s|m|h))+|([0-9*,/?-]+\\s+){4}[0-9*,/?-]+)$"
                  type: string
                minItems: 1
                type: array
              startingDeadlineSeconds:
                description: 'StartingDeadlineSeconds is the K8s-style deadline that will limit the time a CronWorkflow will be run after its

                  original scheduled time if it is missed.'
                format: int64
                minimum: 0
                type: integer
              stopStrategy:
                description: 'v3.6 and after: StopStrategy defines if the CronWorkflow should stop scheduling based on a condition'
                properties:
                  expression:
                    description: 'v3.6 and after: Expression is an expression that stops scheduling workflows when true. Use the variables

                      `cronworkflow`.`failed` or `cronworkflow`.`succeeded` to access the number of failed or successful child workflows.'
                    type: string
                required:
                - expression
                type: object
              successfulJobsHistoryLimit:
                description: SuccessfulJobsHistoryLimit is the number of successful jobs to be kept at a time
                format: int32
                type: integer
              suspend:
                description: Suspend is a flag that will stop new CronWorkflows from running if set to true
                type: boolean
              timezone:
                description: Timezone is the timezone against which the cron schedule will be calculated, e.g. "Asia/Tokyo". Default is machine's local time.
                type: string
              when:
                description: 'v3.6 and after: When is an expression that determines if a run should be scheduled.'
                type: string
              workflowMetadata:
                description: WorkflowMetadata contains some metadata of the workflow to be run
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  finalizers:
                    items:
                      type: string
                    type: array
                  generateName:
                    type: string
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                  name:
                    type: string
                  namespace:
                    type: string
                type: object
              workflowSpec:
                description: WorkflowSpec is the spec of the workflow to be run
                properties:
                  activeDeadlineSeconds:
                    description: 'Optional duration in seconds relative to the workflow start time which the workflow is

                      allowed to run before the controller terminates the workflow. A value of zero is used to

                      terminate a Running workflow'
                    format: int64
                    type: integer
                  affinity:
                    description: 'Affinity sets the scheduling constraints for all pods in the workflow.

                      Can be overridden by an affinity specified in the template'
                    properties:
                      nodeAffinity:
                        description: Describes node affinity scheduling rules for the pod.
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                              the affinity expressions specified by this field, but it may choose

                              a node that violates one or more of the expressions. The node that is

                              most preferred is the one with the greatest sum of weights, i.e.

                              for each node that meets all of the scheduling requirements (resource

                              request, requiredDuringScheduling affinity expressions, etc.),

                              compute a sum by iterating through the elements of this field and adding

                              "weight" to the sum if the node matches the corresponding matchExpressions; the

                              node(s) with the highest sum are the most preferred.'
                            items:
                              description: 'An empty preferred scheduling term matches all objects with implicit weight 0

                                (i.e. it''s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).'
                              properties:
                                preference:
                                  description: A node selector term, associated with the corresponding weight.
                                  properties:
                                    matchExpressions:
                                      description: A list of node selector requirements by node's labels.
                                      items:
                                        description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                          that relates the key and values.'
                                        properties:
                                          key:
                                            description: The label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'Represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                            type: string
                                          values:
                                            description: 'An array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. If the operator is Gt or Lt, the values

                                              array must have a single element, which will be interpreted as an integer.

                                              This array is replaced during a strategic merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      description: A list of node selector requirements by node's fields.
                                      items:
                                        description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                          that relates the key and values.'
                                        properties:
                                          key:
                                            description: The label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'Represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                            type: string
                                          values:
                                            description: 'An array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. If the operator is Gt or Lt, the values

                                              array must have a single element, which will be interpreted as an integer.

                                              This array is replaced during a strategic merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                weight:
                                  description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            description: 'If the affinity requirements specified by this field are not met at

                              scheduling time, the pod will not be scheduled onto the node.

                              If the affinity requirements specified by this field cease to be met

                              at some point during pod execution (e.g. due to an update), the system

                              may or may not try to eventually evict the pod from its node.'
                            properties:
                              nodeSelectorTerms:
                                description: Required. A list of node selector terms. The terms are ORed.
                                items:
                                  description: 'A null or empty node selector term matches no objects. The requirements of

                                    them are ANDed.

                                    The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.'
                                  properties:
                                    matchExpressions:
                                      description: A list of node selector requirements by node's labels.
                                      items:
                                        description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                          that relates the key and values.'
                                        properties:
                                          key:
                                            description: The label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'Represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                            type: string
                                          values:
                                            description: 'An array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. If the operator is Gt or Lt, the values

                                              array must have a single element, which will be interpreted as an integer.

                                              This array is replaced during a strategic merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      description: A list of node selector requirements by node's fields.
                                      items:
                                        description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                          that relates the key and values.'
                                        properties:
                                          key:
                                            description: The label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'Represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                            type: string
                                          values:
                                            description: 'An array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. If the operator is Gt or Lt, the values

                                              array must have a single element, which will be interpreted as an integer.

                                              This array is replaced during a strategic merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                type: array
                                x-kubernetes-list-type: atomic
                            required:
                            - nodeSelectorTerms
                            type: object
                            x-kubernetes-map-type: atomic
                        type: object
                      podAffinity:
                        description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                              the affinity expressions specified by this field, but it may choose

                              a node that violates one or more of the expressions. The node that is

                              most preferred is the one with the greatest sum of weights, i.e.

                              for each node that meets all of the scheduling requirements (resource

                              request, requiredDuringScheduling affinity expressions, etc.),

                              compute a sum by iterating through the elements of this field and adding

                              "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                              node(s) with the highest sum are the most preferred.'
                            items:
                              description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                              properties:
                                podAffinityTerm:
                                  description: Required. A pod affinity term, associated with the corresponding weight.
                                  properties:
                                    labelSelector:
                                      description: 'A label query over a set of resources, in this case pods.

                                        If it''s null, this PodAffinityTerm matches with no Pods.'
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                          items:
                                            description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                              relates the key and values.'
                                            properties:
                                              key:
                                                description: key is the label key that the selector applies to.
                                                type: string
                                              operator:
                                                description: 'operator represents a key''s relationship to a set of values.

                                                  Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                type: string
                                              values:
                                                description: 'values is an array of string values. If the operator is In or NotIn,

                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                  the values array must be empty. This array is replaced during a strategic

                                                  merge patch.'
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                            map is equivalent to an element of matchExpressions, whose key field is "key", the

                                            operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                        be taken into consideration. The keys are used to lookup values from the

                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                        to select the group of existing pods which pods will be taken into consideration

                                        for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                        pod labels will be ignored. The default value is empty.

                                        The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                        Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                        be taken into consideration. The keys are used to lookup values from the

                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                        to select the group of existing pods which pods will be taken into consideration

                                        for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                        pod labels will be ignored. The default value is empty.

                                        The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                        Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      description: 'A label query over the set of namespaces that the term applies to.

                                        The term is applied to the union of the namespaces selected by this field

                                        and the ones listed in the namespaces field.

                                        null selector and null or empty namespaces list means "this pod''s namespace".

                                        An empty selector ({}) matches all namespaces.'
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                          items:
                                            description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                              relates the key and values.'
                                            properties:
                                              key:
                                                description: key is the label key that the selector applies to.
                                                type: string
                                              operator:
                                                description: 'operator represents a key''s relationship to a set of values.

                                                  Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                type: string
                                              values:
                                                description: 'values is an array of string values. If the operator is In or NotIn,

                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                  the values array must be empty. This array is replaced during a strategic

                                                  merge patch.'
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                            map is equivalent to an element of matchExpressions, whose key field is "key", the

                                            operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      description: 'namespaces specifies a static list of namespace names that the term applies to.

                                        The term is applied to the union of the namespaces listed in this field

                                        and the ones selected by namespaceSelector.

                                        null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                        the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                        whose value of the label with key topologyKey matches that of any node on which any of the

                                        selected pods is running.

                                        Empty topologyKey is not allowed.'
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  description: 'weight associated with matching the corresponding podAffinityTerm,

                                    in the range 1-100.'
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            description: 'If the affinity requirements specified by this field are not met at

                              scheduling time, the pod will not be scheduled onto the node.

                              If the affinity requirements specified by this field cease to be met

                              at some point during pod execution (e.g. due to a pod label update), the

                              system may or may not try to eventually evict the pod from its node.

                              When there are multiple elements, the lists of nodes corresponding to each

                              podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                            items:
                              description: 'Defines a set of pods (namely those matching the labelSelector

                                relative to the given namespace(s)) that this pod should be

                                co-located (affinity) or not co-located (anti-affinity) with,

                                where co-located is defined as running on a node whose value of

                                the label with key <topologyKey> matches that of any node on which

                                a pod of the set of pods is running'
                              properties:
                                labelSelector:
                                  description: 'A label query over a set of resources, in this case pods.

                                    If it''s null, this PodAffinityTerm matches with no Pods.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                    Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                    Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  description: 'A label query over the set of namespaces that the term applies to.

                                    The term is applied to the union of the namespaces selected by this field

                                    and the ones listed in the namespaces field.

                                    null selector and null or empty namespaces list means "this pod''s namespace".

                                    An empty selector ({}) matches all namespaces.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: 'namespaces specifies a static list of namespace names that the term applies to.

                                    The term is applied to the union of the namespaces listed in this field

                                    and the ones selected by namespaceSelector.

                                    null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                    the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                    whose value of the label with key topologyKey matches that of any node on which any of the

                                    selected pods is running.

                                    Empty topologyKey is not allowed.'
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                        type: object
                      podAntiAffinity:
                        description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                              the anti-affinity expressions specified by this field, but it may choose

                              a node that violates one or more of the expressions. The node that is

                              most preferred is the one with the greatest sum of weights, i.e.

                              for each node that meets all of the scheduling requirements (resource

                              request, requiredDuringScheduling anti-affinity expressions, etc.),

                              compute a sum by iterating through the elements of this field and adding

                              "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                              node(s) with the highest sum are the most preferred.'
                            items:
                              description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                              properties:
                                podAffinityTerm:
                                  description: Required. A pod affinity term, associated with the corresponding weight.
                                  properties:
                                    labelSelector:
                                      description: 'A label query over a set of resources, in this case pods.

                                        If it''s null, this PodAffinityTerm matches with no Pods.'
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                          items:
                                            description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                              relates the key and values.'
                                            properties:
                                              key:
                                                description: key is the label key that the selector applies to.
                                                type: string
                                              operator:
                                                description: 'operator represents a key''s relationship to a set of values.

                                                  Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                type: string
                                              values:
                                                description: 'values is an array of string values. If the operator is In or NotIn,

                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                  the values array must be empty. This array is replaced during a strategic

                                                  merge patch.'
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                            map is equivalent to an element of matchExpressions, whose key field is "key", the

                                            operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                        be taken into consideration. The keys are used to lookup values from the

                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                        to select the group of existing pods which pods will be taken into consideration

                                        for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                        pod labels will be ignored. The default value is empty.

                                        The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                        Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                        be taken into consideration. The keys are used to lookup values from the

                                        incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                        to select the group of existing pods which pods will be taken into consideration

                                        for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                        pod labels will be ignored. The default value is empty.

                                        The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                        Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      description: 'A label query over the set of namespaces that the term applies to.

                                        The term is applied to the union of the namespaces selected by this field

                                        and the ones listed in the namespaces field.

                                        null selector and null or empty namespaces list means "this pod''s namespace".

                                        An empty selector ({}) matches all namespaces.'
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                          items:
                                            description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                              relates the key and values.'
                                            properties:
                                              key:
                                                description: key is the label key that the selector applies to.
                                                type: string
                                              operator:
                                                description: 'operator represents a key''s relationship to a set of values.

                                                  Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                type: string
                                              values:
                                                description: 'values is an array of string values. If the operator is In or NotIn,

                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                  the values array must be empty. This array is replaced during a strategic

                                                  merge patch.'
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                            map is equivalent to an element of matchExpressions, whose key field is "key", the

                                            operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      description: 'namespaces specifies a static list of namespace names that the term applies to.

                                        The term is applied to the union of the namespaces listed in this field

                                        and the ones selected by namespaceSelector.

                                        null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                        the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                        whose value of the label with key topologyKey matches that of any node on which any of the

                                        selected pods is running.

                                        Empty topologyKey is not allowed.'
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  description: 'weight associated with matching the corresponding podAffinityTerm,

                                    in the range 1-100.'
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            description: 'If the anti-affinity requirements specified by this field are not met at

                              scheduling time, the pod will not be scheduled onto the node.

                              If the anti-affinity requirements specified by this field cease to be met

                              at some point during pod execution (e.g. due to a pod label update), the

                              system may or may not try to eventually evict the pod from its node.

                              When there are multiple elements, the lists of nodes corresponding to each

                              podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                            items:
                              description: 'Defines a set of pods (namely those matching the labelSelector

                                relative to the given namespace(s)) that this pod should be

                                co-located (affinity) or not co-located (anti-affinity) with,

                                where co-located is defined as running on a node whose value of

                                the label with key <topologyKey> matches that of any node on which

                                a pod of the set of pods is running'
                              properties:
                                labelSelector:
                                  description: 'A label query over a set of resources, in this case pods.

                                    If it''s null, this PodAffinityTerm matches with no Pods.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                    Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                    Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  description: 'A label query over the set of namespaces that the term applies to.

                                    The term is applied to the union of the namespaces selected by this field

                                    and the ones listed in the namespaces field.

                                    null selector and null or empty namespaces list means "this pod''s namespace".

                                    An empty selector ({}) matches all namespaces.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: 'namespaces specifies a static list of namespace names that the term applies to.

                                    The term is applied to the union of the namespaces listed in this field

                                    and the ones selected by namespaceSelector.

                                    null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                    the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                    whose value of the label with key topologyKey matches that of any node on which any of the

                                    selected pods is running.

                                    Empty topologyKey is not allowed.'
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                        type: object
                    type: object
                  archiveLogs:
                    description: ArchiveLogs indicates if the container logs should be archived
                    type: boolean
                  arguments:
                    description: 'Arguments contain the parameters and artifacts sent to the workflow entrypoint

                      Parameters are referencable globally using the ''workflow'' variable prefix.

                      e.g. {{workflow.parameters.myparam}}'
                    properties:
                      artifacts:
                        description: Artifacts is the list of artifacts to pass to the template or workflow
                        items:
                          description: Artifact indicates an artifact to place at a specified path
                          properties:
                            archive:
                              description: Archive controls how the artifact will be saved to the artifact repository.
                              properties:
                                none:
                                  description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                    files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                    save/load the directory appropriately.'
                                  type: object
                                tar:
                                  description: TarStrategy will tar and gzip the file or directory when saving
                                  properties:
                                    compressionLevel:
                                      description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                        Defaults to gzip.DefaultCompression.'
                                      format: int32
                                      type: integer
                                  type: object
                                zip:
                                  description: ZipStrategy will unzip zipped input artifacts
                                  type: object
                              type: object
                            archiveLogs:
                              description: ArchiveLogs indicates if the container logs should be archived
                              type: boolean
                            artifactGC:
                              description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                              properties:
                                podMetadata:
                                  description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                serviceAccountName:
                                  description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                  type: string
                                strategy:
                                  description: Strategy is the strategy to use.
                                  enum:
                                  - ''
                                  - OnWorkflowCompletion
                                  - OnWorkflowDeletion
                                  - Never
                                  type: string
                              type: object
                            artifactory:
                              description: Artifactory contains artifactory artifact location details
                              properties:
                                passwordSecret:
                                  description: PasswordSecret is the secret selector to the repository password
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  description: URL of the artifact
                                  type: string
                                usernameSecret:
                                  description: UsernameSecret is the secret selector to the repository username
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              description: Azure contains Azure Storage artifact location details
                              properties:
                                accountKeySecret:
                                  description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                  type: string
                                container:
                                  description: Container is the container where resources will be stored
                                  type: string
                                endpoint:
                                  description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                  type: string
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            deleted:
                              description: Has this been deleted?
                              type: boolean
                            from:
                              description: From allows an artifact to reference an artifact from a previous step
                              type: string
                            fromExpression:
                              description: FromExpression, if defined, is evaluated to specify the value for the artifact
                              type: string
                            gcs:
                              description: GCS contains GCS artifact location details
                              properties:
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                key:
                                  description: Key is the path in the bucket where the artifact resides
                                  type: string
                                serviceAccountKeySecret:
                                  description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              description: Git contains git artifact location details
                              properties:
                                branch:
                                  description: Branch is the branch to fetch when `SingleBranch` is enabled
                                  type: string
                                depth:
                                  description: 'Depth specifies clones/fetches should be shallow and include the given

                                    number of commits from the branch tip'
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  description: DisableSubmodules disables submodules during git clone
                                  type: boolean
                                fetch:
                                  description: Fetch specifies a number of refs that should be fetched before checkout
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                  type: boolean
                                insecureSkipTLS:
                                  description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                  type: boolean
                                passwordSecret:
                                  description: PasswordSecret is the secret selector to the repository password
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  description: Repo is the git repository
                                  type: string
                                revision:
                                  description: Revision is the git commit, tag, branch to checkout
                                  type: string
                                singleBranch:
                                  description: SingleBranch enables single branch clone, using the `branch` parameter
                                  type: boolean
                                sshPrivateKeySecret:
                                  description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  description: UsernameSecret is the secret selector to the repository username
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            globalName:
                              description: 'GlobalName exports an output artifact to the global scope, making it available as

                                ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                              type: string
                            hdfs:
                              description: HDFS contains HDFS artifact location details
                              properties:
                                addresses:
                                  description: Addresses is accessible addresses of HDFS name nodes
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                    It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                  type: string
                                force:
                                  description: Force copies a file forcibly even if it exists
                                  type: boolean
                                hdfsUser:
                                  description: 'HDFSUser is the user to access HDFS file system.

                                    It is ignored if either ccache or keytab is used.'
                                  type: string
                                krbCCacheSecret:
                                  description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                    Either ccache or keytab can be set to use Kerberos.'
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  description: 'KrbConfig is the configmap selector for Kerberos config as string

                                    It must be set if either ccache or keytab is used.'
                                  properties:
                                    key:
                                      description: The key to select.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                    Either ccache or keytab can be set to use Kerberos.'
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                    It must be set if keytab is used.'
                                  type: string
                                krbServicePrincipalName:
                                  description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                    It must be set if either ccache or keytab is used.'
                                  type: string
                                krbUsername:
                                  description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                    It must be set if keytab is used.'
                                  type: string
                                path:
                                  description: Path is a file path in HDFS
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              description: HTTP contains HTTP artifact location details
                              properties:
                                auth:
                                  description: Auth contains information for client authentication
                                  properties:
                                    basicAuth:
                                      description: BasicAuth describes the secret selectors required for basic authentication
                                      properties:
                                        passwordSecret:
                                          description: PasswordSecret is the secret selector to the repository password
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          description: UsernameSecret is the secret selector to the repository username
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      description: ClientCertAuth holds necessary information for client authentication via certificates
                                      properties:
                                        clientCertSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                      properties:
                                        clientIDSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                            properties:
                                              key:
                                                description: Name is the header name
                                                type: string
                                              value:
                                                description: Value is the literal value to use for the header
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                  items:
                                    description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                    properties:
                                      name:
                                        description: Name is the header name
                                        type: string
                                      value:
                                        description: Value is the literal value to use for the header
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  description: URL of the artifact
                                  type: string
                              required:
                              - url
                              type: object
                            mode:
                              description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                Set when loading input artifacts. It is recommended to set the mode value

                                to ensure the artifact has the expected permissions in your container.'
                              format: int32
                              maximum: 511
                              minimum: 0
                              type: integer
                            name:
                              description: name of the artifact. must be unique within a template's inputs/outputs.
                              pattern: ^[-a-zA-Z0-9_{}.]+$
                              type: string
                            optional:
                              description: Make Artifacts optional, if Artifacts doesn't generate or exist
                              type: boolean
                            oss:
                              description: OSS contains OSS artifact location details
                              properties:
                                accessKeySecret:
                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                createBucketIfNotPresent:
                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                  type: boolean
                                endpoint:
                                  description: Endpoint is the hostname of the bucket endpoint
                                  type: string
                                key:
                                  description: Key is the path in the bucket where the artifact resides
                                  type: string
                                lifecycleRule:
                                  description: LifecycleRule specifies how to manage bucket's lifecycle
                                  properties:
                                    markDeletionAfterDays:
                                      description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                  type: string
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              required:
                              - key
                              type: object
                            path:
                              description: Path is the container path to the artifact
                              type: string
                            plugin:
                              description: Plugin contains plugin artifact location details
                              properties:
                                configuration:
                                  description: Configuration is the plugin defined configuration for the artifact driver plugin
                                  type: string
                                connectionTimeoutSeconds:
                                  description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                  format: int32
                                  type: integer
                                key:
                                  description: Key is the path in the artifact repository where the artifact resides
                                  type: string
                                name:
                                  description: Name is the name of the artifact driver plugin
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              description: Raw contains raw artifact location details
                              properties:
                                data:
                                  description: Data is the string contents of the artifact
                                  type: string
                              required:
                              - data
                              type: object
                            recurseMode:
                              description: If mode is set, apply the permission recursively into the artifact if it is a folder
                              type: boolean
                            s3:
                              description: S3 contains S3 artifact location details
                              properties:
                                accessKeySecret:
                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                caSecret:
                                  description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                  properties:
                                    objectLocking:
                                      description: ObjectLocking Enable object locking
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  description: S3EncryptionOptions used to determine encryption options during s3 operations
                                  properties:
                                    enableEncryption:
                                      description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                      type: boolean
                                    kmsEncryptionContext:
                                      description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                      type: string
                                    kmsKeyId:
                                      description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                      type: string
                                    serverSideCustomerKeySecret:
                                      description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  description: Endpoint is the hostname of the bucket endpoint
                                  type: string
                                insecure:
                                  description: Insecure will connect to the service with TLS
                                  type: boolean
                                key:
                                  description: Key is the key in the bucket where the artifact resides
                                  type: string
                                region:
                                  description: Region contains the optional bucket region
                                  type: string
                                roleARN:
                                  description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                  type: string
                                secretKeySecret:
                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              type: object
                            subPath:
                              description: SubPath allows an artifact to be sourced from a subpath within the specified source
                              type: string
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: array
                      parameters:
                        description: Parameters is the list of parameters to pass to the template or workflow
                        items:
                          description: Parameter indicate a passed string parameter to a service template with an optional default value
                          properties:
                            default:
                              description: Default is the default value to use for an input parameter if a value was not supplied
                              type: string
                            description:
                              description: Description is the parameter description
                              type: string
                            enum:
                              description: Enum holds a list of string values to choose from, for the actual value of the parameter
                              items:
                                description: '* It''s JSON type is just string.

                                  * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                  * It will marshall back to string - marshalling is not symmetric.'
                                type: string
                              minItems: 1
                              type: array
                            globalName:
                              description: 'GlobalName exports an output parameter to the global scope, making it available as

                                ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                              type: string
                            name:
                              description: Name is the parameter name
                              pattern: ^[-a-zA-Z0-9_]+$
                              type: string
                            value:
                              description: 'Value is the literal value to use for the parameter.

                                If specified in the context of an input parameter, any passed values take precedence over the specified value'
                              type: string
                            valueFrom:
                              description: ValueFrom is the source for the output parameter's value
                              properties:
                                configMapKeyRef:
                                  description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                  properties:
                                    key:
                                      description: The key to select.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                default:
                                  description: Default specifies a value to be used if retrieving the value from the specified source fails
                                  type: string
                                event:
                                  description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                  type: string
                                expression:
                                  description: Expression, if defined, is evaluated to specify the value for the parameter
                                  type: string
                                jqFilter:
                                  description: JQFilter expression against the resource object in resource templates
                                  type: string
                                jsonPath:
                                  description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                  type: string
                                parameter:
                                  description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                    (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                  type: string
                                path:
                                  description: Path in the container to retrieve an output parameter value from in container templates
                                  type: string
                                supplied:
                                  description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                    type: object
                  artifactGC:
                    description: 'ArtifactGC describes the strategy to use when deleting artifacts from completed or deleted workflows (applies to all output Artifacts

                      unless Artifact.ArtifactGC is specified, which overrides this)'
                    properties:
                      forceFinalizerRemoval:
                        description: 'ForceFinalizerRemoval: if set to true, the finalizer will be removed in the case that Artifact GC fails'
                        type: boolean
                      podMetadata:
                        description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                          labels:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      podSpecPatch:
                        description: PodSpecPatch holds strategic merge patch to apply against the artgc pod spec.
                        type: string
                      serviceAccountName:
                        description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                        type: string
                      strategy:
                        description: Strategy is the strategy to use.
                        enum:
                        - ''
                        - OnWorkflowCompletion
                        - OnWorkflowDeletion
                        - Never
                        type: string
                    type: object
                  artifactRepositoryRef:
                    description: ArtifactRepositoryRef specifies the configMap name and key containing the artifact repository config.
                    properties:
                      configMap:
                        description: The name of the config map. Defaults to "artifact-repositories".
                        type: string
                      key:
                        description: The config map key. Defaults to the value of the "workflows.argoproj.io/default-artifact-repository" annotation.
                        type: string
                    type: object
                  automountServiceAccountToken:
                    description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods.

                      ServiceAccountName of ExecutorConfig must be specified if this value is false.'
                    type: boolean
                  dnsConfig:
                    description: 'PodDNSConfig defines the DNS parameters of a pod in addition to

                      those generated from DNSPolicy.'
                    properties:
                      nameservers:
                        description: 'A list of DNS name server IP addresses.

                          This will be appended to the base nameservers generated from DNSPolicy.

                          Duplicated nameservers will be removed.'
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      options:
                        description: 'A list of DNS resolver options.

                          This will be merged with the base options generated from DNSPolicy.

                          Duplicated entries will be removed. Resolution options given in Options

                          will override those that appear in the base DNSPolicy.'
                        items:
                          description: PodDNSConfigOption defines DNS resolver options of a pod.
                          properties:
                            name:
                              description: 'Name is this DNS resolver option''s name.

                                Required.'
                              type: string
                            value:
                              description: Value is this DNS resolver option's value.
                              type: string
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      searches:
                        description: 'A list of DNS search domains for host-name lookup.

                          This will be appended to the base search paths generated from DNSPolicy.

                          Duplicated search paths will be removed.'
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                  dnsPolicy:
                    description: 'Set DNS policy for workflow pods.

                      Defaults to "ClusterFirst".

                      Valid values are ''ClusterFirstWithHostNet'', ''ClusterFirst'', ''Default'' or ''None''.

                      DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.

                      To have DNS options set along with hostNetwork, you have to specify DNS policy

                      explicitly to ''ClusterFirstWithHostNet''.'
                    type: string
                  entrypoint:
                    description: Entrypoint is a template reference to the starting point of the workflow.
                    type: string
                  executor:
                    description: Executor holds configurations of executor containers of the workflow.
                    properties:
                      serviceAccountName:
                        description: ServiceAccountName specifies the service account name of the executor container.
                        type: string
                    type: object
                  hooks:
                    additionalProperties:
                      properties:
                        arguments:
                          description: Arguments hold arguments to the template
                          properties:
                            artifacts:
                              description: Artifacts is the list of artifacts to pass to the template or workflow
                              items:
                                description: Artifact indicates an artifact to place at a specified path
                                properties:
                                  archive:
                                    description: Archive controls how the artifact will be saved to the artifact repository.
                                    properties:
                                      none:
                                        description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                          files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                          save/load the directory appropriately.'
                                        type: object
                                      tar:
                                        description: TarStrategy will tar and gzip the file or directory when saving
                                        properties:
                                          compressionLevel:
                                            description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                              Defaults to gzip.DefaultCompression.'
                                            format: int32
                                            type: integer
                                        type: object
                                      zip:
                                        description: ZipStrategy will unzip zipped input artifacts
                                        type: object
                                    type: object
                                  archiveLogs:
                                    description: ArchiveLogs indicates if the container logs should be archived
                                    type: boolean
                                  artifactGC:
                                    description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                    properties:
                                      podMetadata:
                                        description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                        properties:
                                          annotations:
                                            additionalProperties:
                                              type: string
                                            type: object
                                          labels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                      serviceAccountName:
                                        description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                        type: string
                                      strategy:
                                        description: Strategy is the strategy to use.
                                        enum:
                                        - ''
                                        - OnWorkflowCompletion
                                        - OnWorkflowDeletion
                                        - Never
                                        type: string
                                    type: object
                                  artifactory:
                                    description: Artifactory contains artifactory artifact location details
                                    properties:
                                      passwordSecret:
                                        description: PasswordSecret is the secret selector to the repository password
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      url:
                                        description: URL of the artifact
                                        type: string
                                      usernameSecret:
                                        description: UsernameSecret is the secret selector to the repository username
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - url
                                    type: object
                                  azure:
                                    description: Azure contains Azure Storage artifact location details
                                    properties:
                                      accountKeySecret:
                                        description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      blob:
                                        description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                        type: string
                                      container:
                                        description: Container is the container where resources will be stored
                                        type: string
                                      endpoint:
                                        description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                        type: string
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    required:
                                    - blob
                                    - container
                                    - endpoint
                                    type: object
                                  deleted:
                                    description: Has this been deleted?
                                    type: boolean
                                  from:
                                    description: From allows an artifact to reference an artifact from a previous step
                                    type: string
                                  fromExpression:
                                    description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                    type: string
                                  gcs:
                                    description: GCS contains GCS artifact location details
                                    properties:
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      key:
                                        description: Key is the path in the bucket where the artifact resides
                                        type: string
                                      serviceAccountKeySecret:
                                        description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - key
                                    type: object
                                  git:
                                    description: Git contains git artifact location details
                                    properties:
                                      branch:
                                        description: Branch is the branch to fetch when `SingleBranch` is enabled
                                        type: string
                                      depth:
                                        description: 'Depth specifies clones/fetches should be shallow and include the given

                                          number of commits from the branch tip'
                                        format: int64
                                        type: integer
                                      disableSubmodules:
                                        description: DisableSubmodules disables submodules during git clone
                                        type: boolean
                                      fetch:
                                        description: Fetch specifies a number of refs that should be fetched before checkout
                                        items:
                                          type: string
                                        type: array
                                      insecureIgnoreHostKey:
                                        description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                        type: boolean
                                      insecureSkipTLS:
                                        description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                        type: boolean
                                      passwordSecret:
                                        description: PasswordSecret is the secret selector to the repository password
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      repo:
                                        description: Repo is the git repository
                                        type: string
                                      revision:
                                        description: Revision is the git commit, tag, branch to checkout
                                        type: string
                                      singleBranch:
                                        description: SingleBranch enables single branch clone, using the `branch` parameter
                                        type: boolean
                                      sshPrivateKeySecret:
                                        description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      usernameSecret:
                                        description: UsernameSecret is the secret selector to the repository username
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - repo
                                    type: object
                                  globalName:
                                    description: 'GlobalName exports an output artifact to the global scope, making it available as

                                      ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                    type: string
                                  hdfs:
                                    description: HDFS contains HDFS artifact location details
                                    properties:
                                      addresses:
                                        description: Addresses is accessible addresses of HDFS name nodes
                                        items:
                                          type: string
                                        type: array
                                      dataTransferProtection:
                                        description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                          It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                        type: string
                                      force:
                                        description: Force copies a file forcibly even if it exists
                                        type: boolean
                                      hdfsUser:
                                        description: 'HDFSUser is the user to access HDFS file system.

                                          It is ignored if either ccache or keytab is used.'
                                        type: string
                                      krbCCacheSecret:
                                        description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                          Either ccache or keytab can be set to use Kerberos.'
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbConfigConfigMap:
                                        description: 'KrbConfig is the configmap selector for Kerberos config as string

                                          It must be set if either ccache or keytab is used.'
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbKeytabSecret:
                                        description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                          Either ccache or keytab can be set to use Kerberos.'
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbRealm:
                                        description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                          It must be set if keytab is used.'
                                        type: string
                                      krbServicePrincipalName:
                                        description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                          It must be set if either ccache or keytab is used.'
                                        type: string
                                      krbUsername:
                                        description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                          It must be set if keytab is used.'
                                        type: string
                                      path:
                                        description: Path is a file path in HDFS
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  http:
                                    description: HTTP contains HTTP artifact location details
                                    properties:
                                      auth:
                                        description: Auth contains information for client authentication
                                        properties:
                                          basicAuth:
                                            description: BasicAuth describes the secret selectors required for basic authentication
                                            properties:
                                              passwordSecret:
                                                description: PasswordSecret is the secret selector to the repository password
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                description: UsernameSecret is the secret selector to the repository username
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          clientCert:
                                            description: ClientCertAuth holds necessary information for client authentication via certificates
                                            properties:
                                              clientCertSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientKeySecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          oauth2:
                                            description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                            properties:
                                              clientIDSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientSecretSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              endpointParams:
                                                items:
                                                  description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                  properties:
                                                    key:
                                                      description: Name is the header name
                                                      type: string
                                                    value:
                                                      description: Value is the literal value to use for the header
                                                      type: string
                                                  required:
                                                  - key
                                                  type: object
                                                type: array
                                              scopes:
                                                items:
                                                  type: string
                                                type: array
                                              tokenURLSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                        type: object
                                      headers:
                                        description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                        items:
                                          description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                          properties:
                                            name:
                                              description: Name is the header name
                                              type: string
                                            value:
                                              description: Value is the literal value to use for the header
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      url:
                                        description: URL of the artifact
                                        type: string
                                    required:
                                    - url
                                    type: object
                                  mode:
                                    description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                      Set when loading input artifacts. It is recommended to set the mode value

                                      to ensure the artifact has the expected permissions in your container.'
                                    format: int32
                                    maximum: 511
                                    minimum: 0
                                    type: integer
                                  name:
                                    description: name of the artifact. must be unique within a template's inputs/outputs.
                                    pattern: ^[-a-zA-Z0-9_{}.]+$
                                    type: string
                                  optional:
                                    description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                    type: boolean
                                  oss:
                                    description: OSS contains OSS artifact location details
                                    properties:
                                      accessKeySecret:
                                        description: AccessKeySecret is the secret selector to the bucket's access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      createBucketIfNotPresent:
                                        description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                        type: boolean
                                      endpoint:
                                        description: Endpoint is the hostname of the bucket endpoint
                                        type: string
                                      key:
                                        description: Key is the path in the bucket where the artifact resides
                                        type: string
                                      lifecycleRule:
                                        description: LifecycleRule specifies how to manage bucket's lifecycle
                                        properties:
                                          markDeletionAfterDays:
                                            description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                            format: int32
                                            type: integer
                                          markInfrequentAccessAfterDays:
                                            description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                            format: int32
                                            type: integer
                                        type: object
                                      secretKeySecret:
                                        description: SecretKeySecret is the secret selector to the bucket's secret key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      securityToken:
                                        description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                        type: string
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  path:
                                    description: Path is the container path to the artifact
                                    type: string
                                  plugin:
                                    description: Plugin contains plugin artifact location details
                                    properties:
                                      configuration:
                                        description: Configuration is the plugin defined configuration for the artifact driver plugin
                                        type: string
                                      connectionTimeoutSeconds:
                                        description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                        format: int32
                                        type: integer
                                      key:
                                        description: Key is the path in the artifact repository where the artifact resides
                                        type: string
                                      name:
                                        description: Name is the name of the artifact driver plugin
                                        type: string
                                    required:
                                    - key
                                    type: object
                                  raw:
                                    description: Raw contains raw artifact location details
                                    properties:
                                      data:
                                        description: Data is the string contents of the artifact
                                        type: string
                                    required:
                                    - data
                                    type: object
                                  recurseMode:
                                    description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                    type: boolean
                                  s3:
                                    description: S3 contains S3 artifact location details
                                    properties:
                                      accessKeySecret:
                                        description: AccessKeySecret is the secret selector to the bucket's access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      caSecret:
                                        description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      createBucketIfNotPresent:
                                        description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                        properties:
                                          objectLocking:
                                            description: ObjectLocking Enable object locking
                                            type: boolean
                                        type: object
                                      encryptionOptions:
                                        description: S3EncryptionOptions used to determine encryption options during s3 operations
                                        properties:
                                          enableEncryption:
                                            description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                            type: boolean
                                          kmsEncryptionContext:
                                            description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                            type: string
                                          kmsKeyId:
                                            description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                            type: string
                                          serverSideCustomerKeySecret:
                                            description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      endpoint:
                                        description: Endpoint is the hostname of the bucket endpoint
                                        type: string
                                      insecure:
                                        description: Insecure will connect to the service with TLS
                                        type: boolean
                                      key:
                                        description: Key is the key in the bucket where the artifact resides
                                        type: string
                                      region:
                                        description: Region contains the optional bucket region
                                        type: string
                                      roleARN:
                                        description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                        type: string
                                      secretKeySecret:
                                        description: SecretKeySecret is the secret selector to the bucket's secret key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      sessionTokenSecret:
                                        description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    type: object
                                  subPath:
                                    description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                    type: string
                                required:
                                - name
                                type: object
                                x-kubernetes-validations:
                                - message: at most one artifact location can be specified
                                  rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                              type: array
                            parameters:
                              description: Parameters is the list of parameters to pass to the template or workflow
                              items:
                                description: Parameter indicate a passed string parameter to a service template with an optional default value
                                properties:
                                  default:
                                    description: Default is the default value to use for an input parameter if a value was not supplied
                                    type: string
                                  description:
                                    description: Description is the parameter description
                                    type: string
                                  enum:
                                    description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                    items:
                                      description: '* It''s JSON type is just string.

                                        * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                        * It will marshall back to string - marshalling is not symmetric.'
                                      type: string
                                    minItems: 1
                                    type: array
                                  globalName:
                                    description: 'GlobalName exports an output parameter to the global scope, making it available as

                                      ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                    type: string
                                  name:
                                    description: Name is the parameter name
                                    pattern: ^[-a-zA-Z0-9_]+$
                                    type: string
                                  value:
                                    description: 'Value is the literal value to use for the parameter.

                                      If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                    type: string
                                  valueFrom:
                                    description: ValueFrom is the source for the output parameter's value
                                    properties:
                                      configMapKeyRef:
                                        description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      default:
                                        description: Default specifies a value to be used if retrieving the value from the specified source fails
                                        type: string
                                      event:
                                        description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                        type: string
                                      expression:
                                        description: Expression, if defined, is evaluated to specify the value for the parameter
                                        type: string
                                      jqFilter:
                                        description: JQFilter expression against the resource object in resource templates
                                        type: string
                                      jsonPath:
                                        description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                        type: string
                                      parameter:
                                        description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                          (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                        type: string
                                      path:
                                        description: Path in the container to retrieve an output parameter value from in container templates
                                        type: string
                                      supplied:
                                        description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                          type: object
                        expression:
                          description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                            be retried and the retry strategy will be ignored'
                          type: string
                        template:
                          description: Template is the name of the template to execute by the hook
                          type: string
                        templateRef:
                          description: TemplateRef is the reference to the template resource to execute by the hook
                          properties:
                            clusterScope:
                              description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                              type: boolean
                            name:
                              description: Name is the resource name of the template.
                              type: string
                            template:
                              description: Template is the name of referred template in the resource.
                              type: string
                          type: object
                      type: object
                    description: 'Hooks holds the lifecycle hook which is invoked at lifecycle of

                      step, irrespective of the success, failure, or error status of the primary step'
                    type: object
                  hostAliases:
                    items:
                      description: 'HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the

                        pod''s hosts file.'
                      properties:
                        hostnames:
                          description: Hostnames for the above IP address.
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        ip:
                          description: IP address of the host file entry.
                          type: string
                      required:
                      - ip
                      type: object
                    type: array
                  hostNetwork:
                    description: Host networking requested for this workflow pod. Default to false.
                    type: boolean
                  imagePullSecrets:
                    description: 'ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images

                      in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets

                      can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.

                      More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod'
                    items:
                      description: 'LocalObjectReference contains enough information to let you locate the

                        referenced object inside the same namespace.'
                      properties:
                        name:
                          default: ''
                          description: 'Name of the referent.

                            This field is effectively required, but due to backwards compatibility is

                            allowed to be empty. Instances of this type with an empty value here are

                            almost certainly wrong.

                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                      type: object
                      x-kubernetes-map-type: atomic
                    type: array
                  metrics:
                    description: Metrics are a list of metrics emitted from this Workflow
                    properties:
                      prometheus:
                        description: 'Prometheus is a list of prometheus metrics to be emitted

                          MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                        items:
                          description: Prometheus is a prometheus metric to be emitted
                          properties:
                            counter:
                              description: Counter is a counter metric
                              properties:
                                value:
                                  description: Value is the value of the metric
                                  minLength: 1
                                  type: string
                              required:
                              - value
                              type: object
                            gauge:
                              description: Gauge is a gauge metric
                              properties:
                                operation:
                                  description: Operation defines the operation to apply with value and the metrics' current value
                                  enum:
                                  - Set
                                  - Add
                                  - Sub
                                  type: string
                                realtime:
                                  description: Realtime emits this metric in real time if applicable
                                  type: boolean
                                value:
                                  description: 'Value is the value to be used in the operation with the metric''s current value. If no operation is set,

                                    value is the value of the metric

                                    MaxLength is an artificial limit to limit CEL validation costs - see note at top of file'
                                  maxLength: 256
                                  minLength: 1
                                  type: string
                              required:
                              - realtime
                              - value
                              type: object
                              x-kubernetes-validations:
                              - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                            help:
                              description: Help is a string that describes the metric
                              minLength: 1
                              type: string
                            histogram:
                              description: Histogram is a histogram metric
                              properties:
                                buckets:
                                  description: Buckets is a list of bucket divisors for the histogram
                                  items:
                                    type: number
                                  type: array
                                value:
                                  description: Value is the value of the metric
                                  minLength: 1
                                  type: string
                              required:
                              - buckets
                              - value
                              type: object
                            labels:
                              description: Labels is a list of metric labels
                              items:
                                description: MetricLabel is a single label for a prometheus metric
                                properties:
                                  key:
                                    pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                    type: string
                                  value:
                                    type: string
                                required:
                                - key
                                - value
                                type: object
                              type: array
                            name:
                              description: Name is the name of the metric
                              pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                              type: string
                            when:
                              description: When is a conditional statement that decides when to emit the metric
                              type: string
                          required:
                          - help
                          - name
                          type: object
                        maxItems: 100
                        type: array
                    required:
                    - prometheus
                    type: object
                  nodeSelector:
                    additionalProperties:
                      type: string
                    description: 'NodeSelector is a selector which will result in all pods of the workflow

                      to be scheduled on the selected node(s). This is able to be overridden by

                      a nodeSelector specified in the template.'
                    type: object
                  onExit:
                    description: 'OnExit is a template reference which is invoked at the end of the

                      workflow, irrespective of the success, failure, or error of the

                      primary workflow.'
                    type: string
                  parallelism:
                    description: Parallelism limits the max total parallel pods that can execute at the same time in a workflow
                    format: int64
                    minimum: 1
                    type: integer
                  podDisruptionBudget:
                    description: 'PodDisruptionBudget holds the number of concurrent disruptions that you allow for Workflow''s Pods.

                      Controller will automatically add the selector with workflow name, if selector is empty.

                      Optional: Defaults to empty.'
                    properties:
                      maxUnavailable:
                        anyOf:
                        - type: integer
                        - type: string
                        description: 'An eviction is allowed if at most "maxUnavailable" pods selected by

                          "selector" are unavailable after the eviction, i.e. even in absence of

                          the evicted pod. For example, one can prevent all voluntary evictions

                          by specifying 0. This is a mutually exclusive setting with "minAvailable".'
                        x-kubernetes-int-or-string: true
                      minAvailable:
                        anyOf:
                        - type: integer
                        - type: string
                        description: 'An eviction is allowed if at least "minAvailable" pods selected by

                          "selector" will still be available after the eviction, i.e. even in the

                          absence of the evicted pod.  So for example you can prevent all voluntary

                          evictions by specifying "100%".'
                        x-kubernetes-int-or-string: true
                      selector:
                        description: 'Label query over pods whose evictions are managed by the disruption

                          budget.

                          A null selector will match no pods, while an empty ({}) selector will select

                          all pods within the namespace.'
                        properties:
                          matchExpressions:
                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                            items:
                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                relates the key and values.'
                              properties:
                                key:
                                  description: key is the label key that the selector applies to.
                                  type: string
                                operator:
                                  description: 'operator represents a key''s relationship to a set of values.

                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                  type: string
                                values:
                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                    the values array must be empty. This array is replaced during a strategic

                                    merge patch.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                              - key
                              - operator
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          matchLabels:
                            additionalProperties:
                              type: string
                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                            type: object
                        type: object
                        x-kubernetes-map-type: atomic
                      unhealthyPodEvictionPolicy:
                        description: 'UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods

                          should be considered for eviction. Current implementation considers healthy pods,

                          as pods that have status.conditions item with type="Ready",status="True".


                          Valid policies are IfHealthyBudget and AlwaysAllow.

                          If no policy is specified, the default behavior will be used,

                          which corresponds to the IfHealthyBudget policy.


                          IfHealthyBudget policy means that running pods (status.phase="Running"),

                          but not yet healthy can be evicted only if the guarded application is not

                          disrupted (status.currentHealthy is at least equal to status.desiredHealthy).

                          Healthy pods will be subject to the PDB for eviction.


                          AlwaysAllow policy means that all running pods (status.phase="Running"),

                          but not yet healthy are considered disrupted and can be evicted regardless

                          of whether the criteria in a PDB is met. This means perspective running

                          pods of a disrupted application might not get a chance to become healthy.

                          Healthy pods will be subject to the PDB for eviction.


                          Additional policies may be added in the future.

                          Clients making eviction decisions should disallow eviction of unhealthy pods

                          if they encounter an unrecognized policy in this field.'
                        type: string
                    type: object
                  podGC:
                    description: PodGC describes the strategy to use when deleting completed pods
                    properties:
                      deleteDelayDuration:
                        description: DeleteDelayDuration specifies the duration before pods in the GC queue get deleted.
                        type: string
                      labelSelector:
                        description: LabelSelector is the label selector to check if the pods match the labels before being added to the pod GC queue.
                        properties:
                          matchExpressions:
                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                            items:
                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                relates the key and values.'
                              properties:
                                key:
                                  description: key is the label key that the selector applies to.
                                  type: string
                                operator:
                                  description: 'operator represents a key''s relationship to a set of values.

                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                  type: string
                                values:
                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                    the values array must be empty. This array is replaced during a strategic

                                    merge patch.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                              - key
                              - operator
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          matchLabels:
                            additionalProperties:
                              type: string
                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                            type: object
                        type: object
                        x-kubernetes-map-type: atomic
                      strategy:
                        description: Strategy is the strategy to use. One of "OnPodCompletion", "OnPodSuccess", "OnWorkflowCompletion", "OnWorkflowSuccess". If unset, does not delete Pods
                        enum:
                        - ''
                        - OnPodCompletion
                        - OnPodSuccess
                        - OnWorkflowCompletion
                        - OnWorkflowSuccess
                        type: string
                    type: object
                  podMetadata:
                    description: PodMetadata defines additional metadata that should be applied to workflow pods
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  podPriorityClassName:
                    description: PriorityClassName to apply to workflow pods.
                    type: string
                  podSpecPatch:
                    description: 'PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of

                      container fields which are not strings (e.g. resource limits).'
                    type: string
                  priority:
                    description: Priority is used if controller is configured to process limited number of workflows in parallel. Workflows with higher priority are processed first.
                    format: int32
                    type: integer
                  retryStrategy:
                    description: RetryStrategy for all templates in the workflow.
                    properties:
                      affinity:
                        description: Affinity prevents running workflow's step on the same host
                        properties:
                          nodeAntiAffinity:
                            description: 'RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed.

                              In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".'
                            type: object
                        type: object
                      backoff:
                        description: Backoff is a backoff strategy
                        properties:
                          cap:
                            description: 'Cap is a limit on revised values of the duration parameter. If a

                              multiplication by the factor parameter would make the duration

                              exceed the cap then the duration is set to the cap'
                            type: string
                          duration:
                            description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                            type: string
                          factor:
                            anyOf:
                            - type: integer
                            - type: string
                            description: Factor is a factor to multiply the base duration after each failed retry
                            x-kubernetes-int-or-string: true
                          maxDuration:
                            description: 'MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy.

                              It is important to note that if the workflow template includes activeDeadlineSeconds, the pod''s deadline is initially set with activeDeadlineSeconds.

                              However, when the workflow fails, the pod''s deadline is then overridden by maxDuration.

                              This ensures that the workflow does not exceed the specified maximum duration when retries are involved.'
                            type: string
                        type: object
                      expression:
                        description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                          be retried and the retry strategy will be ignored'
                        type: string
                      limit:
                        anyOf:
                        - type: integer
                        - type: string
                        description: 'Limit is the maximum number of retry attempts when retrying a container. It does not include the original

                          container; the maximum number of total attempts will be `limit + 1`.'
                        x-kubernetes-int-or-string: true
                      retryPolicy:
                        description: RetryPolicy is a policy of NodePhase statuses that will be retried
                        enum:
                        - Always
                        - OnFailure
                        - OnError
                        - OnTransientError
                        type: string
                    type: object
                  schedulerName:
                    description: 'Set scheduler name for all pods.

                      Will be overridden if container/script template''s scheduler name is set.

                      Default scheduler will be used if neither specified.'
                    type: string
                  securityContext:
                    description: 'SecurityContext holds pod-level security attributes and common container settings.

                      Optional: Defaults to empty.  See type description for default values of each field.'
                    properties:
                      appArmorProfile:
                        description: 'appArmorProfile is the AppArmor options to use by the containers in this pod.

                          Note that this field cannot be set when spec.os.name is windows.'
                        properties:
                          localhostProfile:
                            description: 'localhostProfile indicates a profile loaded on the node that should be used.

                              The profile must be preconfigured on the node to work.

                              Must match the loaded name of the profile.

                              Must be set if and only if type is "Localhost".'
                            type: string
                          type:
                            description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                            type: string
                        required:
                        - type
                        type: object
                      fsGroup:
                        description: 'A special supplemental group that applies to all containers in a pod.

                          Some volume types allow the Kubelet to change the ownership of that volume

                          to be owned by the pod:


                          1. The owning GID will be the FSGroup

                          2. The setgid bit is set (new files created in the volume will be owned by FSGroup)

                          3. The permission bits are OR''d with rw-rw----


                          If unset, the Kubelet will not modify the ownership and permissions of any volume.

                          Note that this field cannot be set when spec.os.name is windows.'
                        format: int64
                        type: integer
                      fsGroupChangePolicy:
                        description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume

                          before being exposed inside Pod. This field will only apply to

                          volume types which support fsGroup based ownership(and permissions).

                          It will have no effect on ephemeral volume types such as: secret, configmaps

                          and emptydir.

                          Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.

                          Note that this field cannot be set when spec.os.name is windows.'
                        type: string
                      runAsGroup:
                        description: 'The GID to run the entrypoint of the container process.

                          Uses runtime default if unset.

                          May also be set in SecurityContext.  If set in both SecurityContext and

                          PodSecurityContext, the value specified in SecurityContext takes precedence

                          for that container.

                          Note that this field cannot be set when spec.os.name is windows.'
                        format: int64
                        type: integer
                      runAsNonRoot:
                        description: 'Indicates that the container must run as a non-root user.

                          If true, the Kubelet will validate the image at runtime to ensure that it

                          does not run as UID 0 (root) and fail to start the container if it does.

                          If unset or false, no such validation will be performed.

                          May also be set in SecurityContext.  If set in both SecurityContext and

                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                        type: boolean
                      runAsUser:
                        description: 'The UID to run the entrypoint of the container process.

                          Defaults to user specified in image metadata if unspecified.

                          May also be set in SecurityContext.  If set in both SecurityContext and

                          PodSecurityContext, the value specified in SecurityContext takes precedence

                          for that container.

                          Note that this field cannot be set when spec.os.name is windows.'
                        format: int64
                        type: integer
                      seLinuxChangePolicy:
                        description: 'seLinuxChangePolicy defines how the container''s SELinux label is applied to all volumes used by the Pod.

                          It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.

                          Valid values are "MountOption" and "Recursive".


                          "Recursive" means relabeling of all files on all Pod volumes by the container runtime.

                          This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.


                          "MountOption" mounts all eligible Pod volumes with `-o context` mount option.

                          This requires all Pods that share the same volume to use the same SELinux label.

                          It is not possible to share the same volume among privileged and unprivileged Pods.

                          Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes

                          whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their

                          CSIDriver instance. Other volumes are always re-labelled recursively.

                          "MountOption" value is allowed only when SELinuxMount feature gate is enabled.


                          If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.

                          If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes

                          and "Recursive" for all other volumes.


                          This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.


                          All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.

                          Note that this field cannot be set when spec.os.name is windows.'
                        type: string
                      seLinuxOptions:
                        description: 'The SELinux context to be applied to all containers.

                          If unspecified, the container runtime will allocate a random SELinux context for each

                          container.  May also be set in SecurityContext.  If set in

                          both SecurityContext and PodSecurityContext, the value specified in SecurityContext

                          takes precedence for that container.

                          Note that this field cannot be set when spec.os.name is windows.'
                        properties:
                          level:
                            description: Level is SELinux level label that applies to the container.
                            type: string
                          role:
                            description: Role is a SELinux role label that applies to the container.
                            type: string
                          type:
                            description: Type is a SELinux type label that applies to the container.
                            type: string
                          user:
                            description: User is a SELinux user label that applies to the container.
                            type: string
                        type: object
                      seccompProfile:
                        description: 'The seccomp options to use by the containers in this pod.

                          Note that this field cannot be set when spec.os.name is windows.'
                        properties:
                          localhostProfile:
                            description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                              The profile must be preconfigured on the node to work.

                              Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                              Must be set if type is "Localhost". Must NOT be set for any other type.'
                            type: string
                          type:
                            description: 'type indicates which kind of seccomp profile will be applied.

                              Valid options are:


                              Localhost - a profile defined in a file on the node should be used.

                              RuntimeDefault - the container runtime default profile should be used.

                              Unconfined - no profile should be applied.'
                            type: string
                        required:
                        - type
                        type: object
                      supplementalGroups:
                        description: 'A list of groups applied to the first process run in each container, in

                          addition to the container''s primary GID and fsGroup (if specified).  If

                          the SupplementalGroupsPolicy feature is enabled, the

                          supplementalGroupsPolicy field determines whether these are in addition

                          to or instead of any group memberships defined in the container image.

                          If unspecified, no additional groups are added, though group memberships

                          defined in the container image may still be used, depending on the

                          supplementalGroupsPolicy field.

                          Note that this field cannot be set when spec.os.name is windows.'
                        items:
                          format: int64
                          type: integer
                        type: array
                        x-kubernetes-list-type: atomic
                      supplementalGroupsPolicy:
                        description: 'Defines how supplemental groups of the first container processes are calculated.

                          Valid values are "Merge" and "Strict". If not specified, "Merge" is used.

                          (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled

                          and the container runtime must implement support for this feature.

                          Note that this field cannot be set when spec.os.name is windows.'
                        type: string
                      sysctls:
                        description: 'Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported

                          sysctls (by the container runtime) might fail to launch.

                          Note that this field cannot be set when spec.os.name is windows.'
                        items:
                          description: Sysctl defines a kernel parameter to be set
                          properties:
                            name:
                              description: Name of a property to set
                              type: string
                            value:
                              description: Value of a property to set
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      windowsOptions:
                        description: 'The Windows specific settings applied to all containers.

                          If unspecified, the options within a container''s SecurityContext will be used.

                          If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                          Note that this field cannot be set when spec.os.name is linux.'
                        properties:
                          gmsaCredentialSpec:
                            description: 'GMSACredentialSpec is where the GMSA admission webhook

                              (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                              GMSA credential spec named by the GMSACredentialSpecName field.'
                            type: string
                          gmsaCredentialSpecName:
                            description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                            type: string
                          hostProcess:
                            description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                              All of a Pod''s containers must have the same effective HostProcess value

                              (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                              In addition, if HostProcess is true then HostNetwork must also be set to true.'
                            type: boolean
                          runAsUserName:
                            description: 'The UserName in Windows to run the entrypoint of the container process.

                              Defaults to the user specified in image metadata if unspecified.

                              May also be set in PodSecurityContext. If set in both SecurityContext and

                              PodSecurityContext, the value specified in SecurityContext takes precedence.'
                            type: string
                        type: object
                    type: object
                  serviceAccountName:
                    description: ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as.
                    type: string
                  shutdown:
                    description: Shutdown will shutdown the workflow according to its ShutdownStrategy
                    type: string
                  suspend:
                    description: Suspend will suspend the workflow and prevent execution of any future steps in the workflow
                    type: boolean
                  synchronization:
                    description: Synchronization holds synchronization lock configuration for this Workflow
                    properties:
                      mutexes:
                        description: 'v3.6 and after: Mutexes holds the list of Mutex lock details'
                        items:
                          description: Mutex holds Mutex configuration
                          properties:
                            database:
                              description: Database specifies this is database controlled if this is set true
                              type: boolean
                            name:
                              description: name of the mutex
                              type: string
                            namespace:
                              description: 'Namespace is the namespace of the mutex, default: [namespace of workflow]'
                              type: string
                          type: object
                        type: array
                      semaphores:
                        description: 'v3.6 and after: Semaphores holds the list of Semaphores configuration'
                        items:
                          description: SemaphoreRef is a reference of Semaphore
                          properties:
                            configMapKeyRef:
                              description: ConfigMapKeyRef is a configmap selector for Semaphore configuration
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            database:
                              description: SyncDatabaseRef is a database reference for Semaphore configuration
                              properties:
                                key:
                                  type: string
                              required:
                              - key
                              type: object
                            namespace:
                              description: 'Namespace is the namespace of the configmap, default: [namespace of workflow]'
                              type: string
                          type: object
                        type: array
                    type: object
                  templateDefaults:
                    description: 'TemplateDefaults holds default template values that will apply to all templates in the Workflow, unless overridden on the template-level.

                      All nested field descriptions have been dropped due to Kubernetes size limitations.'
                    properties:
                      activeDeadlineSeconds:
                        anyOf:
                        - type: integer
                        - type: string
                        x-kubernetes-int-or-string: true
                      affinity:
                        properties:
                          nodeAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    preference:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchFields:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - preference
                                  - weight
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              requiredDuringSchedulingIgnoredDuringExecution:
                                properties:
                                  nodeSelectorTerms:
                                    items:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchFields:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    type: array
                                    x-kubernetes-list-type: atomic
                                required:
                                - nodeSelectorTerms
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          podAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    podAffinityTerm:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        matchLabelKeys:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        mismatchLabelKeys:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        namespaceSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        namespaces:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        topologyKey:
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              requiredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          podAntiAffinity:
                            properties:
                              preferredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    podAffinityTerm:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        matchLabelKeys:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        mismatchLabelKeys:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        namespaceSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        namespaces:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        topologyKey:
                                          type: string
                                      required:
                                      - topologyKey
                                      type: object
                                    weight:
                                      format: int32
                                      type: integer
                                  required:
                                  - podAffinityTerm
                                  - weight
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              requiredDuringSchedulingIgnoredDuringExecution:
                                items:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                        type: object
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      archiveLocation:
                        properties:
                          archiveLogs:
                            type: boolean
                          artifactory:
                            properties:
                              passwordSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              url:
                                type: string
                              usernameSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - url
                            type: object
                          azure:
                            properties:
                              accountKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              blob:
                                type: string
                              container:
                                type: string
                              endpoint:
                                type: string
                              useSDKCreds:
                                type: boolean
                            required:
                            - blob
                            - container
                            - endpoint
                            type: object
                          gcs:
                            properties:
                              bucket:
                                type: string
                              key:
                                type: string
                              serviceAccountKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - key
                            type: object
                          git:
                            properties:
                              branch:
                                type: string
                              depth:
                                format: int64
                                type: integer
                              disableSubmodules:
                                type: boolean
                              fetch:
                                items:
                                  type: string
                                type: array
                              insecureIgnoreHostKey:
                                type: boolean
                              insecureSkipTLS:
                                type: boolean
                              passwordSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              repo:
                                type: string
                              revision:
                                type: string
                              singleBranch:
                                type: boolean
                              sshPrivateKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              usernameSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - repo
                            type: object
                          hdfs:
                            properties:
                              addresses:
                                items:
                                  type: string
                                type: array
                              dataTransferProtection:
                                type: string
                              force:
                                type: boolean
                              hdfsUser:
                                type: string
                              krbCCacheSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              krbConfigConfigMap:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              krbKeytabSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              krbRealm:
                                type: string
                              krbServicePrincipalName:
                                type: string
                              krbUsername:
                                type: string
                              path:
                                type: string
                            required:
                            - path
                            type: object
                          http:
                            properties:
                              auth:
                                properties:
                                  basicAuth:
                                    properties:
                                      passwordSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      usernameSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  clientCert:
                                    properties:
                                      clientCertSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      clientKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  oauth2:
                                    properties:
                                      clientIDSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      clientSecretSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      endpointParams:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - key
                                          type: object
                                        type: array
                                      scopes:
                                        items:
                                          type: string
                                        type: array
                                      tokenURLSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                type: object
                              headers:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              url:
                                type: string
                            required:
                            - url
                            type: object
                          oss:
                            properties:
                              accessKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              bucket:
                                type: string
                              createBucketIfNotPresent:
                                type: boolean
                              endpoint:
                                type: string
                              key:
                                type: string
                              lifecycleRule:
                                properties:
                                  markDeletionAfterDays:
                                    format: int32
                                    type: integer
                                  markInfrequentAccessAfterDays:
                                    format: int32
                                    type: integer
                                type: object
                              secretKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              securityToken:
                                type: string
                              useSDKCreds:
                                type: boolean
                            required:
                            - key
                            type: object
                          plugin:
                            properties:
                              configuration:
                                type: string
                              connectionTimeoutSeconds:
                                format: int32
                                type: integer
                              key:
                                type: string
                              name:
                                type: string
                            required:
                            - key
                            type: object
                          raw:
                            properties:
                              data:
                                type: string
                            required:
                            - data
                            type: object
                          s3:
                            properties:
                              accessKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              bucket:
                                type: string
                              caSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              createBucketIfNotPresent:
                                properties:
                                  objectLocking:
                                    type: boolean
                                type: object
                              encryptionOptions:
                                properties:
                                  enableEncryption:
                                    type: boolean
                                  kmsEncryptionContext:
                                    type: string
                                  kmsKeyId:
                                    type: string
                                  serverSideCustomerKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              endpoint:
                                type: string
                              insecure:
                                type: boolean
                              key:
                                type: string
                              region:
                                type: string
                              roleARN:
                                type: string
                              secretKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              sessionTokenSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              useSDKCreds:
                                type: boolean
                            type: object
                        type: object
                        x-kubernetes-validations:
                        - message: at most one artifact location can be specified
                          rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                      automountServiceAccountToken:
                        type: boolean
                      container:
                        properties:
                          args:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                                valueFrom:
                                  properties:
                                    configMapKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      properties:
                                        apiVersion:
                                          type: string
                                        fieldPath:
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      properties:
                                        containerName:
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            items:
                              properties:
                                configMapRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  type: string
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            type: string
                          imagePullPolicy:
                            type: string
                          lifecycle:
                            properties:
                              postStart:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    properties:
                                      seconds:
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    properties:
                                      seconds:
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                type: string
                            type: object
                          livenessProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          name:
                            type: string
                          ports:
                            items:
                              properties:
                                containerPort:
                                  format: int32
                                  type: integer
                                hostIP:
                                  type: string
                                hostPort:
                                  format: int32
                                  type: integer
                                name:
                                  type: string
                                protocol:
                                  default: TCP
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            items:
                              properties:
                                resourceName:
                                  type: string
                                restartPolicy:
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            properties:
                              claims:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    request:
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type: object
                            type: object
                          restartPolicy:
                            type: string
                          securityContext:
                            properties:
                              allowPrivilegeEscalation:
                                type: boolean
                              appArmorProfile:
                                properties:
                                  localhostProfile:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                properties:
                                  add:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                type: boolean
                              procMount:
                                type: string
                              readOnlyRootFilesystem:
                                type: boolean
                              runAsGroup:
                                format: int64
                                type: integer
                              runAsNonRoot:
                                type: boolean
                              runAsUser:
                                format: int64
                                type: integer
                              seLinuxOptions:
                                properties:
                                  level:
                                    type: string
                                  role:
                                    type: string
                                  type:
                                    type: string
                                  user:
                                    type: string
                                type: object
                              seccompProfile:
                                properties:
                                  localhostProfile:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                properties:
                                  gmsaCredentialSpec:
                                    type: string
                                  gmsaCredentialSpecName:
                                    type: string
                                  hostProcess:
                                    type: boolean
                                  runAsUserName:
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            type: boolean
                          stdinOnce:
                            type: boolean
                          terminationMessagePath:
                            type: string
                          terminationMessagePolicy:
                            type: string
                          tty:
                            type: boolean
                          volumeDevices:
                            items:
                              properties:
                                devicePath:
                                  type: string
                                name:
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            items:
                              properties:
                                mountPath:
                                  type: string
                                mountPropagation:
                                  type: string
                                name:
                                  type: string
                                readOnly:
                                  type: boolean
                                recursiveReadOnly:
                                  type: string
                                subPath:
                                  type: string
                                subPathExpr:
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            type: string
                        type: object
                      containerSet:
                        properties:
                          containers:
                            items:
                              properties:
                                args:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                dependencies:
                                  items:
                                    type: string
                                  type: array
                                env:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                      valueFrom:
                                        properties:
                                          configMapKeyRef:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          fieldRef:
                                            properties:
                                              apiVersion:
                                                type: string
                                              fieldPath:
                                                type: string
                                            required:
                                            - fieldPath
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          resourceFieldRef:
                                            properties:
                                              containerName:
                                                type: string
                                              divisor:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              resource:
                                                type: string
                                            required:
                                            - resource
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          secretKeyRef:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - name
                                  x-kubernetes-list-type: map
                                envFrom:
                                  items:
                                    properties:
                                      configMapRef:
                                        properties:
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      prefix:
                                        type: string
                                      secretRef:
                                        properties:
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                image:
                                  type: string
                                imagePullPolicy:
                                  type: string
                                lifecycle:
                                  properties:
                                    postStart:
                                      properties:
                                        exec:
                                          properties:
                                            command:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          type: object
                                        httpGet:
                                          properties:
                                            host:
                                              type: string
                                            httpHeaders:
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                required:
                                                - name
                                                - value
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            path:
                                              type: string
                                            port:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              x-kubernetes-int-or-string: true
                                            scheme:
                                              type: string
                                          required:
                                          - port
                                          type: object
                                        sleep:
                                          properties:
                                            seconds:
                                              format: int64
                                              type: integer
                                          required:
                                          - seconds
                                          type: object
                                        tcpSocket:
                                          properties:
                                            host:
                                              type: string
                                            port:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              x-kubernetes-int-or-string: true
                                          required:
                                          - port
                                          type: object
                                      type: object
                                    preStop:
                                      properties:
                                        exec:
                                          properties:
                                            command:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          type: object
                                        httpGet:
                                          properties:
                                            host:
                                              type: string
                                            httpHeaders:
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                required:
                                                - name
                                                - value
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            path:
                                              type: string
                                            port:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              x-kubernetes-int-or-string: true
                                            scheme:
                                              type: string
                                          required:
                                          - port
                                          type: object
                                        sleep:
                                          properties:
                                            seconds:
                                              format: int64
                                              type: integer
                                          required:
                                          - seconds
                                          type: object
                                        tcpSocket:
                                          properties:
                                            host:
                                              type: string
                                            port:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              x-kubernetes-int-or-string: true
                                          required:
                                          - port
                                          type: object
                                      type: object
                                    stopSignal:
                                      type: string
                                  type: object
                                livenessProbe:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    failureThreshold:
                                      format: int32
                                      type: integer
                                    grpc:
                                      properties:
                                        port:
                                          format: int32
                                          type: integer
                                        service:
                                          default: ''
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    initialDelaySeconds:
                                      format: int32
                                      type: integer
                                    periodSeconds:
                                      format: int32
                                      type: integer
                                    successThreshold:
                                      format: int32
                                      type: integer
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                    terminationGracePeriodSeconds:
                                      format: int64
                                      type: integer
                                    timeoutSeconds:
                                      format: int32
                                      type: integer
                                  type: object
                                name:
                                  type: string
                                ports:
                                  items:
                                    properties:
                                      containerPort:
                                        format: int32
                                        type: integer
                                      hostIP:
                                        type: string
                                      hostPort:
                                        format: int32
                                        type: integer
                                      name:
                                        type: string
                                      protocol:
                                        default: TCP
                                        type: string
                                    required:
                                    - containerPort
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - containerPort
                                  - protocol
                                  x-kubernetes-list-type: map
                                readinessProbe:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    failureThreshold:
                                      format: int32
                                      type: integer
                                    grpc:
                                      properties:
                                        port:
                                          format: int32
                                          type: integer
                                        service:
                                          default: ''
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    initialDelaySeconds:
                                      format: int32
                                      type: integer
                                    periodSeconds:
                                      format: int32
                                      type: integer
                                    successThreshold:
                                      format: int32
                                      type: integer
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                    terminationGracePeriodSeconds:
                                      format: int64
                                      type: integer
                                    timeoutSeconds:
                                      format: int32
                                      type: integer
                                  type: object
                                resizePolicy:
                                  items:
                                    properties:
                                      resourceName:
                                        type: string
                                      restartPolicy:
                                        type: string
                                    required:
                                    - resourceName
                                    - restartPolicy
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                resources:
                                  properties:
                                    claims:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          request:
                                            type: string
                                        required:
                                        - name
                                        type: object
                                      type: array
                                      x-kubernetes-list-map-keys:
                                      - name
                                      x-kubernetes-list-type: map
                                    limits:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type: object
                                    requests:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type: object
                                  type: object
                                restartPolicy:
                                  type: string
                                securityContext:
                                  properties:
                                    allowPrivilegeEscalation:
                                      type: boolean
                                    appArmorProfile:
                                      properties:
                                        localhostProfile:
                                          type: string
                                        type:
                                          type: string
                                      required:
                                      - type
                                      type: object
                                    capabilities:
                                      properties:
                                        add:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        drop:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    privileged:
                                      type: boolean
                                    procMount:
                                      type: string
                                    readOnlyRootFilesystem:
                                      type: boolean
                                    runAsGroup:
                                      format: int64
                                      type: integer
                                    runAsNonRoot:
                                      type: boolean
                                    runAsUser:
                                      format: int64
                                      type: integer
                                    seLinuxOptions:
                                      properties:
                                        level:
                                          type: string
                                        role:
                                          type: string
                                        type:
                                          type: string
                                        user:
                                          type: string
                                      type: object
                                    seccompProfile:
                                      properties:
                                        localhostProfile:
                                          type: string
                                        type:
                                          type: string
                                      required:
                                      - type
                                      type: object
                                    windowsOptions:
                                      properties:
                                        gmsaCredentialSpec:
                                          type: string
                                        gmsaCredentialSpecName:
                                          type: string
                                        hostProcess:
                                          type: boolean
                                        runAsUserName:
                                          type: string
                                      type: object
                                  type: object
                                startupProbe:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    failureThreshold:
                                      format: int32
                                      type: integer
                                    grpc:
                                      properties:
                                        port:
                                          format: int32
                                          type: integer
                                        service:
                                          default: ''
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    initialDelaySeconds:
                                      format: int32
                                      type: integer
                                    periodSeconds:
                                      format: int32
                                      type: integer
                                    successThreshold:
                                      format: int32
                                      type: integer
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                    terminationGracePeriodSeconds:
                                      format: int64
                                      type: integer
                                    timeoutSeconds:
                                      format: int32
                                      type: integer
                                  type: object
                                stdin:
                                  type: boolean
                                stdinOnce:
                                  type: boolean
                                terminationMessagePath:
                                  type: string
                                terminationMessagePolicy:
                                  type: string
                                tty:
                                  type: boolean
                                volumeDevices:
                                  items:
                                    properties:
                                      devicePath:
                                        type: string
                                      name:
                                        type: string
                                    required:
                                    - devicePath
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - devicePath
                                  x-kubernetes-list-type: map
                                volumeMounts:
                                  items:
                                    properties:
                                      mountPath:
                                        type: string
                                      mountPropagation:
                                        type: string
                                      name:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      recursiveReadOnly:
                                        type: string
                                      subPath:
                                        type: string
                                      subPathExpr:
                                        type: string
                                    required:
                                    - mountPath
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - mountPath
                                  x-kubernetes-list-type: map
                                workingDir:
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                          retryStrategy:
                            properties:
                              duration:
                                type: string
                              retries:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - retries
                            type: object
                          volumeMounts:
                            items:
                              properties:
                                mountPath:
                                  type: string
                                mountPropagation:
                                  type: string
                                name:
                                  type: string
                                readOnly:
                                  type: boolean
                                recursiveReadOnly:
                                  type: string
                                subPath:
                                  type: string
                                subPathExpr:
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                        required:
                        - containers
                        type: object
                      daemon:
                        type: boolean
                      dag:
                        properties:
                          failFast:
                            type: boolean
                          target:
                            type: string
                          tasks:
                            items:
                              properties:
                                arguments:
                                  properties:
                                    artifacts:
                                      items:
                                        properties:
                                          archive:
                                            properties:
                                              none:
                                                type: object
                                              tar:
                                                properties:
                                                  compressionLevel:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              zip:
                                                type: object
                                            type: object
                                          archiveLogs:
                                            type: boolean
                                          artifactGC:
                                            properties:
                                              podMetadata:
                                                properties:
                                                  annotations:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                  labels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                              serviceAccountName:
                                                type: string
                                              strategy:
                                                enum:
                                                - ''
                                                - OnWorkflowCompletion
                                                - OnWorkflowDeletion
                                                - Never
                                                type: string
                                            type: object
                                          artifactory:
                                            properties:
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              url:
                                                type: string
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - url
                                            type: object
                                          azure:
                                            properties:
                                              accountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              blob:
                                                type: string
                                              container:
                                                type: string
                                              endpoint:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - blob
                                            - container
                                            - endpoint
                                            type: object
                                          deleted:
                                            type: boolean
                                          from:
                                            type: string
                                          fromExpression:
                                            type: string
                                          gcs:
                                            properties:
                                              bucket:
                                                type: string
                                              key:
                                                type: string
                                              serviceAccountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - key
                                            type: object
                                          git:
                                            properties:
                                              branch:
                                                type: string
                                              depth:
                                                format: int64
                                                type: integer
                                              disableSubmodules:
                                                type: boolean
                                              fetch:
                                                items:
                                                  type: string
                                                type: array
                                              insecureIgnoreHostKey:
                                                type: boolean
                                              insecureSkipTLS:
                                                type: boolean
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              repo:
                                                type: string
                                              revision:
                                                type: string
                                              singleBranch:
                                                type: boolean
                                              sshPrivateKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - repo
                                            type: object
                                          globalName:
                                            type: string
                                          hdfs:
                                            properties:
                                              addresses:
                                                items:
                                                  type: string
                                                type: array
                                              dataTransferProtection:
                                                type: string
                                              force:
                                                type: boolean
                                              hdfsUser:
                                                type: string
                                              krbCCacheSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbConfigConfigMap:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbKeytabSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbRealm:
                                                type: string
                                              krbServicePrincipalName:
                                                type: string
                                              krbUsername:
                                                type: string
                                              path:
                                                type: string
                                            required:
                                            - path
                                            type: object
                                          http:
                                            properties:
                                              auth:
                                                properties:
                                                  basicAuth:
                                                    properties:
                                                      passwordSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      usernameSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  clientCert:
                                                    properties:
                                                      clientCertSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientKeySecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  oauth2:
                                                    properties:
                                                      clientIDSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientSecretSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      endpointParams:
                                                        items:
                                                          properties:
                                                            key:
                                                              type: string
                                                            value:
                                                              type: string
                                                          required:
                                                          - key
                                                          type: object
                                                        type: array
                                                      scopes:
                                                        items:
                                                          type: string
                                                        type: array
                                                      tokenURLSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                type: object
                                              headers:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              url:
                                                type: string
                                            required:
                                            - url
                                            type: object
                                          mode:
                                            format: int32
                                            maximum: 511
                                            minimum: 0
                                            type: integer
                                          name:
                                            pattern: ^[-a-zA-Z0-9_{}.]+$
                                            type: string
                                          optional:
                                            type: boolean
                                          oss:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              createBucketIfNotPresent:
                                                type: boolean
                                              endpoint:
                                                type: string
                                              key:
                                                type: string
                                              lifecycleRule:
                                                properties:
                                                  markDeletionAfterDays:
                                                    format: int32
                                                    type: integer
                                                  markInfrequentAccessAfterDays:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              securityToken:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                          path:
                                            type: string
                                          plugin:
                                            properties:
                                              configuration:
                                                type: string
                                              connectionTimeoutSeconds:
                                                format: int32
                                                type: integer
                                              key:
                                                type: string
                                              name:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          raw:
                                            properties:
                                              data:
                                                type: string
                                            required:
                                            - data
                                            type: object
                                          recurseMode:
                                            type: boolean
                                          s3:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              caSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              createBucketIfNotPresent:
                                                properties:
                                                  objectLocking:
                                                    type: boolean
                                                type: object
                                              encryptionOptions:
                                                properties:
                                                  enableEncryption:
                                                    type: boolean
                                                  kmsEncryptionContext:
                                                    type: string
                                                  kmsKeyId:
                                                    type: string
                                                  serverSideCustomerKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              endpoint:
                                                type: string
                                              insecure:
                                                type: boolean
                                              key:
                                                type: string
                                              region:
                                                type: string
                                              roleARN:
                                                type: string
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              sessionTokenSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              useSDKCreds:
                                                type: boolean
                                            type: object
                                          subPath:
                                            type: string
                                        required:
                                        - name
                                        type: object
                                        x-kubernetes-validations:
                                        - message: at most one artifact location can be specified
                                          rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                      type: array
                                    parameters:
                                      items:
                                        properties:
                                          default:
                                            type: string
                                          description:
                                            type: string
                                          enum:
                                            items:
                                              type: string
                                            minItems: 1
                                            type: array
                                          globalName:
                                            type: string
                                          name:
                                            pattern: ^[-a-zA-Z0-9_]+$
                                            type: string
                                          value:
                                            type: string
                                          valueFrom:
                                            properties:
                                              configMapKeyRef:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              default:
                                                type: string
                                              event:
                                                type: string
                                              expression:
                                                type: string
                                              jqFilter:
                                                type: string
                                              jsonPath:
                                                type: string
                                              parameter:
                                                type: string
                                              path:
                                                type: string
                                              supplied:
                                                type: object
                                            type: object
                                        required:
                                        - name
                                        type: object
                                      type: array
                                  type: object
                                continueOn:
                                  properties:
                                    error:
                                      type: boolean
                                    failed:
                                      type: boolean
                                  type: object
                                dependencies:
                                  items:
                                    type: string
                                  type: array
                                depends:
                                  type: string
                                hooks:
                                  additionalProperties:
                                    properties:
                                      arguments:
                                        properties:
                                          artifacts:
                                            items:
                                              properties:
                                                archive:
                                                  properties:
                                                    none:
                                                      type: object
                                                    tar:
                                                      properties:
                                                        compressionLevel:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    zip:
                                                      type: object
                                                  type: object
                                                archiveLogs:
                                                  type: boolean
                                                artifactGC:
                                                  properties:
                                                    podMetadata:
                                                      properties:
                                                        annotations:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        labels:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    serviceAccountName:
                                                      type: string
                                                    strategy:
                                                      enum:
                                                      - ''
                                                      - OnWorkflowCompletion
                                                      - OnWorkflowDeletion
                                                      - Never
                                                      type: string
                                                  type: object
                                                artifactory:
                                                  properties:
                                                    passwordSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    url:
                                                      type: string
                                                    usernameSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - url
                                                  type: object
                                                azure:
                                                  properties:
                                                    accountKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    blob:
                                                      type: string
                                                    container:
                                                      type: string
                                                    endpoint:
                                                      type: string
                                                    useSDKCreds:
                                                      type: boolean
                                                  required:
                                                  - blob
                                                  - container
                                                  - endpoint
                                                  type: object
                                                deleted:
                                                  type: boolean
                                                from:
                                                  type: string
                                                fromExpression:
                                                  type: string
                                                gcs:
                                                  properties:
                                                    bucket:
                                                      type: string
                                                    key:
                                                      type: string
                                                    serviceAccountKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - key
                                                  type: object
                                                git:
                                                  properties:
                                                    branch:
                                                      type: string
                                                    depth:
                                                      format: int64
                                                      type: integer
                                                    disableSubmodules:
                                                      type: boolean
                                                    fetch:
                                                      items:
                                                        type: string
                                                      type: array
                                                    insecureIgnoreHostKey:
                                                      type: boolean
                                                    insecureSkipTLS:
                                                      type: boolean
                                                    passwordSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    repo:
                                                      type: string
                                                    revision:
                                                      type: string
                                                    singleBranch:
                                                      type: boolean
                                                    sshPrivateKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    usernameSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - repo
                                                  type: object
                                                globalName:
                                                  type: string
                                                hdfs:
                                                  properties:
                                                    addresses:
                                                      items:
                                                        type: string
                                                      type: array
                                                    dataTransferProtection:
                                                      type: string
                                                    force:
                                                      type: boolean
                                                    hdfsUser:
                                                      type: string
                                                    krbCCacheSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbConfigConfigMap:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbKeytabSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbRealm:
                                                      type: string
                                                    krbServicePrincipalName:
                                                      type: string
                                                    krbUsername:
                                                      type: string
                                                    path:
                                                      type: string
                                                  required:
                                                  - path
                                                  type: object
                                                http:
                                                  properties:
                                                    auth:
                                                      properties:
                                                        basicAuth:
                                                          properties:
                                                            passwordSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            usernameSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                        clientCert:
                                                          properties:
                                                            clientCertSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            clientKeySecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                        oauth2:
                                                          properties:
                                                            clientIDSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            clientSecretSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            endpointParams:
                                                              items:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  value:
                                                                    type: string
                                                                required:
                                                                - key
                                                                type: object
                                                              type: array
                                                            scopes:
                                                              items:
                                                                type: string
                                                              type: array
                                                            tokenURLSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                      type: object
                                                    headers:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    url:
                                                      type: string
                                                  required:
                                                  - url
                                                  type: object
                                                mode:
                                                  format: int32
                                                  maximum: 511
                                                  minimum: 0
                                                  type: integer
                                                name:
                                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                                  type: string
                                                optional:
                                                  type: boolean
                                                oss:
                                                  properties:
                                                    accessKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    bucket:
                                                      type: string
                                                    createBucketIfNotPresent:
                                                      type: boolean
                                                    endpoint:
                                                      type: string
                                                    key:
                                                      type: string
                                                    lifecycleRule:
                                                      properties:
                                                        markDeletionAfterDays:
                                                          format: int32
                                                          type: integer
                                                        markInfrequentAccessAfterDays:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    secretKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    securityToken:
                                                      type: string
                                                    useSDKCreds:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                path:
                                                  type: string
                                                plugin:
                                                  properties:
                                                    configuration:
                                                      type: string
                                                    connectionTimeoutSeconds:
                                                      format: int32
                                                      type: integer
                                                    key:
                                                      type: string
                                                    name:
                                                      type: string
                                                  required:
                                                  - key
                                                  type: object
                                                raw:
                                                  properties:
                                                    data:
                                                      type: string
                                                  required:
                                                  - data
                                                  type: object
                                                recurseMode:
                                                  type: boolean
                                                s3:
                                                  properties:
                                                    accessKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    bucket:
                                                      type: string
                                                    caSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    createBucketIfNotPresent:
                                                      properties:
                                                        objectLocking:
                                                          type: boolean
                                                      type: object
                                                    encryptionOptions:
                                                      properties:
                                                        enableEncryption:
                                                          type: boolean
                                                        kmsEncryptionContext:
                                                          type: string
                                                        kmsKeyId:
                                                          type: string
                                                        serverSideCustomerKeySecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    endpoint:
                                                      type: string
                                                    insecure:
                                                      type: boolean
                                                    key:
                                                      type: string
                                                    region:
                                                      type: string
                                                    roleARN:
                                                      type: string
                                                    secretKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    sessionTokenSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    useSDKCreds:
                                                      type: boolean
                                                  type: object
                                                subPath:
                                                  type: string
                                              required:
                                              - name
                                              type: object
                                              x-kubernetes-validations:
                                              - message: at most one artifact location can be specified
                                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                            type: array
                                          parameters:
                                            items:
                                              properties:
                                                default:
                                                  type: string
                                                description:
                                                  type: string
                                                enum:
                                                  items:
                                                    type: string
                                                  minItems: 1
                                                  type: array
                                                globalName:
                                                  type: string
                                                name:
                                                  pattern: ^[-a-zA-Z0-9_]+$
                                                  type: string
                                                value:
                                                  type: string
                                                valueFrom:
                                                  properties:
                                                    configMapKeyRef:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    default:
                                                      type: string
                                                    event:
                                                      type: string
                                                    expression:
                                                      type: string
                                                    jqFilter:
                                                      type: string
                                                    jsonPath:
                                                      type: string
                                                    parameter:
                                                      type: string
                                                    path:
                                                      type: string
                                                    supplied:
                                                      type: object
                                                  type: object
                                              required:
                                              - name
                                              type: object
                                            type: array
                                        type: object
                                      expression:
                                        type: string
                                      template:
                                        type: string
                                      templateRef:
                                        properties:
                                          clusterScope:
                                            type: boolean
                                          name:
                                            type: string
                                          template:
                                            type: string
                                        type: object
                                    type: object
                                  type: object
                                inline:
                                  x-kubernetes-preserve-unknown-fields: true
                                name:
                                  maxLength: 128
                                  pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                  type: string
                                onExit:
                                  type: string
                                template:
                                  type: string
                                templateRef:
                                  properties:
                                    clusterScope:
                                      type: boolean
                                    name:
                                      type: string
                                    template:
                                      type: string
                                  type: object
                                when:
                                  type: string
                                withItems:
                                  x-kubernetes-preserve-unknown-fields: true
                                withParam:
                                  type: string
                                withSequence:
                                  properties:
                                    count:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    end:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    format:
                                      type: string
                                    start:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  type: object
                                  x-kubernetes-validations:
                                  - message: only one of count or end can be defined
                                    rule: '!(has(self.count) && has(self.end))'
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: cannot use both 'depends' and 'dependencies'
                                rule: '!has(self.depends) || !has(self.dependencies)'
                              - message: cannot use 'continueOn' when using 'depends'
                                rule: '!has(self.depends) || !has(self.continueOn)'
                              - message: task name cannot begin with a digit when using 'depends' or 'dependencies'
                                rule: '!(has(self.depends) || has(self.dependencies)) || !self.name.matches(''^[0-9]'')'
                            maxItems: 200
                            minItems: 1
                            type: array
                        required:
                        - tasks
                        type: object
                      data:
                        properties:
                          source:
                            properties:
                              artifactPaths:
                                properties:
                                  archive:
                                    properties:
                                      none:
                                        type: object
                                      tar:
                                        properties:
                                          compressionLevel:
                                            format: int32
                                            type: integer
                                        type: object
                                      zip:
                                        type: object
                                    type: object
                                  archiveLogs:
                                    type: boolean
                                  artifactGC:
                                    properties:
                                      podMetadata:
                                        properties:
                                          annotations:
                                            additionalProperties:
                                              type: string
                                            type: object
                                          labels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                      serviceAccountName:
                                        type: string
                                      strategy:
                                        enum:
                                        - ''
                                        - OnWorkflowCompletion
                                        - OnWorkflowDeletion
                                        - Never
                                        type: string
                                    type: object
                                  artifactory:
                                    properties:
                                      passwordSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      url:
                                        type: string
                                      usernameSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - url
                                    type: object
                                  azure:
                                    properties:
                                      accountKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      blob:
                                        type: string
                                      container:
                                        type: string
                                      endpoint:
                                        type: string
                                      useSDKCreds:
                                        type: boolean
                                    required:
                                    - blob
                                    - container
                                    - endpoint
                                    type: object
                                  deleted:
                                    type: boolean
                                  from:
                                    type: string
                                  fromExpression:
                                    type: string
                                  gcs:
                                    properties:
                                      bucket:
                                        type: string
                                      key:
                                        type: string
                                      serviceAccountKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - key
                                    type: object
                                  git:
                                    properties:
                                      branch:
                                        type: string
                                      depth:
                                        format: int64
                                        type: integer
                                      disableSubmodules:
                                        type: boolean
                                      fetch:
                                        items:
                                          type: string
                                        type: array
                                      insecureIgnoreHostKey:
                                        type: boolean
                                      insecureSkipTLS:
                                        type: boolean
                                      passwordSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      repo:
                                        type: string
                                      revision:
                                        type: string
                                      singleBranch:
                                        type: boolean
                                      sshPrivateKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      usernameSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - repo
                                    type: object
                                  globalName:
                                    type: string
                                  hdfs:
                                    properties:
                                      addresses:
                                        items:
                                          type: string
                                        type: array
                                      dataTransferProtection:
                                        type: string
                                      force:
                                        type: boolean
                                      hdfsUser:
                                        type: string
                                      krbCCacheSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbConfigConfigMap:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbKeytabSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbRealm:
                                        type: string
                                      krbServicePrincipalName:
                                        type: string
                                      krbUsername:
                                        type: string
                                      path:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  http:
                                    properties:
                                      auth:
                                        properties:
                                          basicAuth:
                                            properties:
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          clientCert:
                                            properties:
                                              clientCertSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          oauth2:
                                            properties:
                                              clientIDSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientSecretSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              endpointParams:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - key
                                                  type: object
                                                type: array
                                              scopes:
                                                items:
                                                  type: string
                                                type: array
                                              tokenURLSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                        type: object
                                      headers:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      url:
                                        type: string
                                    required:
                                    - url
                                    type: object
                                  mode:
                                    format: int32
                                    maximum: 511
                                    minimum: 0
                                    type: integer
                                  name:
                                    pattern: ^[-a-zA-Z0-9_{}.]+$
                                    type: string
                                  optional:
                                    type: boolean
                                  oss:
                                    properties:
                                      accessKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        type: string
                                      createBucketIfNotPresent:
                                        type: boolean
                                      endpoint:
                                        type: string
                                      key:
                                        type: string
                                      lifecycleRule:
                                        properties:
                                          markDeletionAfterDays:
                                            format: int32
                                            type: integer
                                          markInfrequentAccessAfterDays:
                                            format: int32
                                            type: integer
                                        type: object
                                      secretKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      securityToken:
                                        type: string
                                      useSDKCreds:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  path:
                                    type: string
                                  plugin:
                                    properties:
                                      configuration:
                                        type: string
                                      connectionTimeoutSeconds:
                                        format: int32
                                        type: integer
                                      key:
                                        type: string
                                      name:
                                        type: string
                                    required:
                                    - key
                                    type: object
                                  raw:
                                    properties:
                                      data:
                                        type: string
                                    required:
                                    - data
                                    type: object
                                  recurseMode:
                                    type: boolean
                                  s3:
                                    properties:
                                      accessKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        type: string
                                      caSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      createBucketIfNotPresent:
                                        properties:
                                          objectLocking:
                                            type: boolean
                                        type: object
                                      encryptionOptions:
                                        properties:
                                          enableEncryption:
                                            type: boolean
                                          kmsEncryptionContext:
                                            type: string
                                          kmsKeyId:
                                            type: string
                                          serverSideCustomerKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      endpoint:
                                        type: string
                                      insecure:
                                        type: boolean
                                      key:
                                        type: string
                                      region:
                                        type: string
                                      roleARN:
                                        type: string
                                      secretKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      sessionTokenSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      useSDKCreds:
                                        type: boolean
                                    type: object
                                  subPath:
                                    type: string
                                required:
                                - name
                                type: object
                                x-kubernetes-validations:
                                - message: at most one artifact location can be specified
                                  rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                            type: object
                          transformation:
                            items:
                              properties:
                                expression:
                                  type: string
                              required:
                              - expression
                              type: object
                            type: array
                        required:
                        - source
                        - transformation
                        type: object
                      executor:
                        properties:
                          serviceAccountName:
                            type: string
                        type: object
                      failFast:
                        type: boolean
                      hostAliases:
                        items:
                          properties:
                            hostnames:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            ip:
                              type: string
                          required:
                          - ip
                          type: object
                        type: array
                      http:
                        properties:
                          body:
                            type: string
                          bodyFrom:
                            properties:
                              bytes:
                                format: byte
                                type: string
                            type: object
                          headers:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                                valueFrom:
                                  properties:
                                    secretKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                          insecureSkipVerify:
                            type: boolean
                          method:
                            type: string
                          successCondition:
                            type: string
                          timeoutSeconds:
                            format: int64
                            type: integer
                          url:
                            type: string
                        required:
                        - url
                        type: object
                      initContainers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            command:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                stopSignal:
                                  type: string
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            mirrorVolumeMounts:
                              type: boolean
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            resizePolicy:
                              items:
                                properties:
                                  resourceName:
                                    type: string
                                  restartPolicy:
                                    type: string
                                required:
                                - resourceName
                                - restartPolicy
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            resources:
                              properties:
                                claims:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      request:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - name
                                  x-kubernetes-list-type: map
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                              type: object
                            restartPolicy:
                              type: string
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - devicePath
                              x-kubernetes-list-type: map
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - mountPath
                              x-kubernetes-list-type: map
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      inputs:
                        properties:
                          artifacts:
                            items:
                              properties:
                                archive:
                                  properties:
                                    none:
                                      type: object
                                    tar:
                                      properties:
                                        compressionLevel:
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      type: object
                                  type: object
                                archiveLogs:
                                  type: boolean
                                artifactGC:
                                  properties:
                                    podMetadata:
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      type: string
                                    strategy:
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  properties:
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      type: string
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  properties:
                                    accountKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      type: string
                                    container:
                                      type: string
                                    endpoint:
                                      type: string
                                    useSDKCreds:
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  type: boolean
                                from:
                                  type: string
                                fromExpression:
                                  type: string
                                gcs:
                                  properties:
                                    bucket:
                                      type: string
                                    key:
                                      type: string
                                    serviceAccountKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  properties:
                                    branch:
                                      type: string
                                    depth:
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      type: boolean
                                    fetch:
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      type: boolean
                                    insecureSkipTLS:
                                      type: boolean
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      type: string
                                    revision:
                                      type: string
                                    singleBranch:
                                      type: boolean
                                    sshPrivateKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  type: string
                                hdfs:
                                  properties:
                                    addresses:
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      type: string
                                    force:
                                      type: boolean
                                    hdfsUser:
                                      type: string
                                    krbCCacheSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      type: string
                                    krbServicePrincipalName:
                                      type: string
                                    krbUsername:
                                      type: string
                                    path:
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  properties:
                                    auth:
                                      properties:
                                        basicAuth:
                                          properties:
                                            passwordSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          properties:
                                            clientCertSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          properties:
                                            clientIDSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  value:
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  type: boolean
                                oss:
                                  properties:
                                    accessKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      type: string
                                    createBucketIfNotPresent:
                                      type: boolean
                                    endpoint:
                                      type: string
                                    key:
                                      type: string
                                    lifecycleRule:
                                      properties:
                                        markDeletionAfterDays:
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      type: string
                                    useSDKCreds:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  type: string
                                plugin:
                                  properties:
                                    configuration:
                                      type: string
                                    connectionTimeoutSeconds:
                                      format: int32
                                      type: integer
                                    key:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  properties:
                                    data:
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  type: boolean
                                s3:
                                  properties:
                                    accessKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      type: string
                                    caSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      properties:
                                        objectLocking:
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      properties:
                                        enableEncryption:
                                          type: boolean
                                        kmsEncryptionContext:
                                          type: string
                                        kmsKeyId:
                                          type: string
                                        serverSideCustomerKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      type: string
                                    insecure:
                                      type: boolean
                                    key:
                                      type: string
                                    region:
                                      type: string
                                    roleARN:
                                      type: string
                                    secretKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      type: boolean
                                  type: object
                                subPath:
                                  type: string
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: at most one artifact location can be specified
                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                            type: array
                          parameters:
                            items:
                              properties:
                                default:
                                  type: string
                                description:
                                  type: string
                                enum:
                                  items:
                                    type: string
                                  minItems: 1
                                  type: array
                                globalName:
                                  type: string
                                name:
                                  pattern: ^[-a-zA-Z0-9_]+$
                                  type: string
                                value:
                                  type: string
                                valueFrom:
                                  properties:
                                    configMapKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    default:
                                      type: string
                                    event:
                                      type: string
                                    expression:
                                      type: string
                                    jqFilter:
                                      type: string
                                    jsonPath:
                                      type: string
                                    parameter:
                                      type: string
                                    path:
                                      type: string
                                    supplied:
                                      type: object
                                  type: object
                              required:
                              - name
                              type: object
                            maxItems: 500
                            type: array
                        type: object
                      memoize:
                        properties:
                          cache:
                            properties:
                              configMap:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - configMap
                            type: object
                          key:
                            type: string
                          maxAge:
                            type: string
                        required:
                        - cache
                        - key
                        - maxAge
                        type: object
                      metadata:
                        properties:
                          annotations:
                            additionalProperties:
                              type: string
                            type: object
                          labels:
                            additionalProperties:
                              type: string
                            type: object
                        type: object
                      metrics:
                        properties:
                          prometheus:
                            items:
                              properties:
                                counter:
                                  properties:
                                    value:
                                      minLength: 1
                                      type: string
                                  required:
                                  - value
                                  type: object
                                gauge:
                                  properties:
                                    operation:
                                      enum:
                                      - Set
                                      - Add
                                      - Sub
                                      type: string
                                    realtime:
                                      type: boolean
                                    value:
                                      maxLength: 256
                                      minLength: 1
                                      type: string
                                  required:
                                  - realtime
                                  - value
                                  type: object
                                  x-kubernetes-validations:
                                  - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                    rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                                help:
                                  minLength: 1
                                  type: string
                                histogram:
                                  properties:
                                    buckets:
                                      items:
                                        type: number
                                      type: array
                                    value:
                                      minLength: 1
                                      type: string
                                  required:
                                  - buckets
                                  - value
                                  type: object
                                labels:
                                  items:
                                    properties:
                                      key:
                                        pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - key
                                    - value
                                    type: object
                                  type: array
                                name:
                                  pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                  type: string
                                when:
                                  type: string
                              required:
                              - help
                              - name
                              type: object
                            maxItems: 100
                            type: array
                        required:
                        - prometheus
                        type: object
                      name:
                        maxLength: 128
                        pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                        type: string
                      nodeSelector:
                        additionalProperties:
                          type: string
                        type: object
                      outputs:
                        properties:
                          artifacts:
                            items:
                              properties:
                                archive:
                                  properties:
                                    none:
                                      type: object
                                    tar:
                                      properties:
                                        compressionLevel:
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      type: object
                                  type: object
                                archiveLogs:
                                  type: boolean
                                artifactGC:
                                  properties:
                                    podMetadata:
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      type: string
                                    strategy:
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  properties:
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      type: string
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  properties:
                                    accountKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      type: string
                                    container:
                                      type: string
                                    endpoint:
                                      type: string
                                    useSDKCreds:
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  type: boolean
                                from:
                                  type: string
                                fromExpression:
                                  type: string
                                gcs:
                                  properties:
                                    bucket:
                                      type: string
                                    key:
                                      type: string
                                    serviceAccountKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  properties:
                                    branch:
                                      type: string
                                    depth:
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      type: boolean
                                    fetch:
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      type: boolean
                                    insecureSkipTLS:
                                      type: boolean
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      type: string
                                    revision:
                                      type: string
                                    singleBranch:
                                      type: boolean
                                    sshPrivateKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  type: string
                                hdfs:
                                  properties:
                                    addresses:
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      type: string
                                    force:
                                      type: boolean
                                    hdfsUser:
                                      type: string
                                    krbCCacheSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      type: string
                                    krbServicePrincipalName:
                                      type: string
                                    krbUsername:
                                      type: string
                                    path:
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  properties:
                                    auth:
                                      properties:
                                        basicAuth:
                                          properties:
                                            passwordSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          properties:
                                            clientCertSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          properties:
                                            clientIDSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  value:
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  type: boolean
                                oss:
                                  properties:
                                    accessKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      type: string
                                    createBucketIfNotPresent:
                                      type: boolean
                                    endpoint:
                                      type: string
                                    key:
                                      type: string
                                    lifecycleRule:
                                      properties:
                                        markDeletionAfterDays:
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      type: string
                                    useSDKCreds:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  type: string
                                plugin:
                                  properties:
                                    configuration:
                                      type: string
                                    connectionTimeoutSeconds:
                                      format: int32
                                      type: integer
                                    key:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  properties:
                                    data:
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  type: boolean
                                s3:
                                  properties:
                                    accessKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      type: string
                                    caSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      properties:
                                        objectLocking:
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      properties:
                                        enableEncryption:
                                          type: boolean
                                        kmsEncryptionContext:
                                          type: string
                                        kmsKeyId:
                                          type: string
                                        serverSideCustomerKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      type: string
                                    insecure:
                                      type: boolean
                                    key:
                                      type: string
                                    region:
                                      type: string
                                    roleARN:
                                      type: string
                                    secretKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      type: boolean
                                  type: object
                                subPath:
                                  type: string
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: at most one artifact location can be specified
                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                            type: array
                          exitCode:
                            type: string
                          parameters:
                            items:
                              properties:
                                default:
                                  type: string
                                description:
                                  type: string
                                enum:
                                  items:
                                    type: string
                                  minItems: 1
                                  type: array
                                globalName:
                                  type: string
                                name:
                                  pattern: ^[-a-zA-Z0-9_]+$
                                  type: string
                                value:
                                  type: string
                                valueFrom:
                                  properties:
                                    configMapKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    default:
                                      type: string
                                    event:
                                      type: string
                                    expression:
                                      type: string
                                    jqFilter:
                                      type: string
                                    jsonPath:
                                      type: string
                                    parameter:
                                      type: string
                                    path:
                                      type: string
                                    supplied:
                                      type: object
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                          result:
                            type: string
                        type: object
                      parallelism:
                        format: int64
                        minimum: 1
                        type: integer
                      plugin:
                        type: object
                        x-kubernetes-preserve-unknown-fields: true
                      podSpecPatch:
                        type: string
                      priorityClassName:
                        type: string
                      resource:
                        properties:
                          action:
                            enum:
                            - get
                            - create
                            - apply
                            - delete
                            - replace
                            - patch
                            type: string
                          failureCondition:
                            type: string
                          flags:
                            items:
                              type: string
                            type: array
                          manifest:
                            type: string
                          manifestFrom:
                            properties:
                              artifact:
                                properties:
                                  archive:
                                    properties:
                                      none:
                                        type: object
                                      tar:
                                        properties:
                                          compressionLevel:
                                            format: int32
                                            type: integer
                                        type: object
                                      zip:
                                        type: object
                                    type: object
                                  archiveLogs:
                                    type: boolean
                                  artifactGC:
                                    properties:
                                      podMetadata:
                                        properties:
                                          annotations:
                                            additionalProperties:
                                              type: string
                                            type: object
                                          labels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                      serviceAccountName:
                                        type: string
                                      strategy:
                                        enum:
                                        - ''
                                        - OnWorkflowCompletion
                                        - OnWorkflowDeletion
                                        - Never
                                        type: string
                                    type: object
                                  artifactory:
                                    properties:
                                      passwordSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      url:
                                        type: string
                                      usernameSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - url
                                    type: object
                                  azure:
                                    properties:
                                      accountKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      blob:
                                        type: string
                                      container:
                                        type: string
                                      endpoint:
                                        type: string
                                      useSDKCreds:
                                        type: boolean
                                    required:
                                    - blob
                                    - container
                                    - endpoint
                                    type: object
                                  deleted:
                                    type: boolean
                                  from:
                                    type: string
                                  fromExpression:
                                    type: string
                                  gcs:
                                    properties:
                                      bucket:
                                        type: string
                                      key:
                                        type: string
                                      serviceAccountKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - key
                                    type: object
                                  git:
                                    properties:
                                      branch:
                                        type: string
                                      depth:
                                        format: int64
                                        type: integer
                                      disableSubmodules:
                                        type: boolean
                                      fetch:
                                        items:
                                          type: string
                                        type: array
                                      insecureIgnoreHostKey:
                                        type: boolean
                                      insecureSkipTLS:
                                        type: boolean
                                      passwordSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      repo:
                                        type: string
                                      revision:
                                        type: string
                                      singleBranch:
                                        type: boolean
                                      sshPrivateKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      usernameSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - repo
                                    type: object
                                  globalName:
                                    type: string
                                  hdfs:
                                    properties:
                                      addresses:
                                        items:
                                          type: string
                                        type: array
                                      dataTransferProtection:
                                        type: string
                                      force:
                                        type: boolean
                                      hdfsUser:
                                        type: string
                                      krbCCacheSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbConfigConfigMap:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbKeytabSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbRealm:
                                        type: string
                                      krbServicePrincipalName:
                                        type: string
                                      krbUsername:
                                        type: string
                                      path:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  http:
                                    properties:
                                      auth:
                                        properties:
                                          basicAuth:
                                            properties:
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          clientCert:
                                            properties:
                                              clientCertSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          oauth2:
                                            properties:
                                              clientIDSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientSecretSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              endpointParams:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - key
                                                  type: object
                                                type: array
                                              scopes:
                                                items:
                                                  type: string
                                                type: array
                                              tokenURLSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                        type: object
                                      headers:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      url:
                                        type: string
                                    required:
                                    - url
                                    type: object
                                  mode:
                                    format: int32
                                    maximum: 511
                                    minimum: 0
                                    type: integer
                                  name:
                                    pattern: ^[-a-zA-Z0-9_{}.]+$
                                    type: string
                                  optional:
                                    type: boolean
                                  oss:
                                    properties:
                                      accessKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        type: string
                                      createBucketIfNotPresent:
                                        type: boolean
                                      endpoint:
                                        type: string
                                      key:
                                        type: string
                                      lifecycleRule:
                                        properties:
                                          markDeletionAfterDays:
                                            format: int32
                                            type: integer
                                          markInfrequentAccessAfterDays:
                                            format: int32
                                            type: integer
                                        type: object
                                      secretKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      securityToken:
                                        type: string
                                      useSDKCreds:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  path:
                                    type: string
                                  plugin:
                                    properties:
                                      configuration:
                                        type: string
                                      connectionTimeoutSeconds:
                                        format: int32
                                        type: integer
                                      key:
                                        type: string
                                      name:
                                        type: string
                                    required:
                                    - key
                                    type: object
                                  raw:
                                    properties:
                                      data:
                                        type: string
                                    required:
                                    - data
                                    type: object
                                  recurseMode:
                                    type: boolean
                                  s3:
                                    properties:
                                      accessKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        type: string
                                      caSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      createBucketIfNotPresent:
                                        properties:
                                          objectLocking:
                                            type: boolean
                                        type: object
                                      encryptionOptions:
                                        properties:
                                          enableEncryption:
                                            type: boolean
                                          kmsEncryptionContext:
                                            type: string
                                          kmsKeyId:
                                            type: string
                                          serverSideCustomerKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      endpoint:
                                        type: string
                                      insecure:
                                        type: boolean
                                      key:
                                        type: string
                                      region:
                                        type: string
                                      roleARN:
                                        type: string
                                      secretKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      sessionTokenSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      useSDKCreds:
                                        type: boolean
                                    type: object
                                  subPath:
                                    type: string
                                required:
                                - name
                                type: object
                                x-kubernetes-validations:
                                - message: at most one artifact location can be specified
                                  rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                            required:
                            - artifact
                            type: object
                          mergeStrategy:
                            enum:
                            - strategic
                            - merge
                            - json
                            type: string
                          setOwnerReference:
                            type: boolean
                          successCondition:
                            type: string
                        required:
                        - action
                        type: object
                        x-kubernetes-validations:
                        - message: only one of manifest or manifestFrom can be specified
                          rule: (has(self.manifest) && !has(self.manifestFrom)) || (!has(self.manifest) && has(self.manifestFrom)) || (!has(self.manifest) && !has(self.manifestFrom))
                      retryStrategy:
                        properties:
                          affinity:
                            properties:
                              nodeAntiAffinity:
                                type: object
                            type: object
                          backoff:
                            properties:
                              cap:
                                type: string
                              duration:
                                type: string
                              factor:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              maxDuration:
                                type: string
                            type: object
                          expression:
                            type: string
                          limit:
                            anyOf:
                            - type: integer
                            - type: string
                            x-kubernetes-int-or-string: true
                          retryPolicy:
                            enum:
                            - Always
                            - OnFailure
                            - OnError
                            - OnTransientError
                            type: string
                        type: object
                      schedulerName:
                        type: string
                      script:
                        properties:
                          args:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                                valueFrom:
                                  properties:
                                    configMapKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      properties:
                                        apiVersion:
                                          type: string
                                        fieldPath:
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      properties:
                                        containerName:
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            items:
                              properties:
                                configMapRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  type: string
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            type: string
                          imagePullPolicy:
                            type: string
                          lifecycle:
                            properties:
                              postStart:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    properties:
                                      seconds:
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    properties:
                                      seconds:
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                type: string
                            type: object
                          livenessProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          name:
                            type: string
                          ports:
                            items:
                              properties:
                                containerPort:
                                  format: int32
                                  type: integer
                                hostIP:
                                  type: string
                                hostPort:
                                  format: int32
                                  type: integer
                                name:
                                  type: string
                                protocol:
                                  default: TCP
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            items:
                              properties:
                                resourceName:
                                  type: string
                                restartPolicy:
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            properties:
                              claims:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    request:
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type: object
                            type: object
                          restartPolicy:
                            type: string
                          securityContext:
                            properties:
                              allowPrivilegeEscalation:
                                type: boolean
                              appArmorProfile:
                                properties:
                                  localhostProfile:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                properties:
                                  add:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                type: boolean
                              procMount:
                                type: string
                              readOnlyRootFilesystem:
                                type: boolean
                              runAsGroup:
                                format: int64
                                type: integer
                              runAsNonRoot:
                                type: boolean
                              runAsUser:
                                format: int64
                                type: integer
                              seLinuxOptions:
                                properties:
                                  level:
                                    type: string
                                  role:
                                    type: string
                                  type:
                                    type: string
                                  user:
                                    type: string
                                type: object
                              seccompProfile:
                                properties:
                                  localhostProfile:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                properties:
                                  gmsaCredentialSpec:
                                    type: string
                                  gmsaCredentialSpecName:
                                    type: string
                                  hostProcess:
                                    type: boolean
                                  runAsUserName:
                                    type: string
                                type: object
                            type: object
                          source:
                            type: string
                          startupProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            type: boolean
                          stdinOnce:
                            type: boolean
                          terminationMessagePath:
                            type: string
                          terminationMessagePolicy:
                            type: string
                          tty:
                            type: boolean
                          volumeDevices:
                            items:
                              properties:
                                devicePath:
                                  type: string
                                name:
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            items:
                              properties:
                                mountPath:
                                  type: string
                                mountPropagation:
                                  type: string
                                name:
                                  type: string
                                readOnly:
                                  type: boolean
                                recursiveReadOnly:
                                  type: string
                                subPath:
                                  type: string
                                subPathExpr:
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            type: string
                        type: object
                      securityContext:
                        properties:
                          appArmorProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          fsGroup:
                            format: int64
                            type: integer
                          fsGroupChangePolicy:
                            type: string
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxChangePolicy:
                            type: string
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          supplementalGroups:
                            items:
                              format: int64
                              type: integer
                            type: array
                            x-kubernetes-list-type: atomic
                          supplementalGroupsPolicy:
                            type: string
                          sysctls:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      serviceAccountName:
                        type: string
                      sidecars:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            command:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                stopSignal:
                                  type: string
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            mirrorVolumeMounts:
                              type: boolean
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            resizePolicy:
                              items:
                                properties:
                                  resourceName:
                                    type: string
                                  restartPolicy:
                                    type: string
                                required:
                                - resourceName
                                - restartPolicy
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            resources:
                              properties:
                                claims:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      request:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - name
                                  x-kubernetes-list-type: map
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                              type: object
                            restartPolicy:
                              type: string
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - devicePath
                              x-kubernetes-list-type: map
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - mountPath
                              x-kubernetes-list-type: map
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      steps:
                        items:
                          items:
                            properties:
                              arguments:
                                properties:
                                  artifacts:
                                    items:
                                      properties:
                                        archive:
                                          properties:
                                            none:
                                              type: object
                                            tar:
                                              properties:
                                                compressionLevel:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            zip:
                                              type: object
                                          type: object
                                        archiveLogs:
                                          type: boolean
                                        artifactGC:
                                          properties:
                                            podMetadata:
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            serviceAccountName:
                                              type: string
                                            strategy:
                                              enum:
                                              - ''
                                              - OnWorkflowCompletion
                                              - OnWorkflowDeletion
                                              - Never
                                              type: string
                                          type: object
                                        artifactory:
                                          properties:
                                            passwordSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            url:
                                              type: string
                                            usernameSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - url
                                          type: object
                                        azure:
                                          properties:
                                            accountKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            blob:
                                              type: string
                                            container:
                                              type: string
                                            endpoint:
                                              type: string
                                            useSDKCreds:
                                              type: boolean
                                          required:
                                          - blob
                                          - container
                                          - endpoint
                                          type: object
                                        deleted:
                                          type: boolean
                                        from:
                                          type: string
                                        fromExpression:
                                          type: string
                                        gcs:
                                          properties:
                                            bucket:
                                              type: string
                                            key:
                                              type: string
                                            serviceAccountKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - key
                                          type: object
                                        git:
                                          properties:
                                            branch:
                                              type: string
                                            depth:
                                              format: int64
                                              type: integer
                                            disableSubmodules:
                                              type: boolean
                                            fetch:
                                              items:
                                                type: string
                                              type: array
                                            insecureIgnoreHostKey:
                                              type: boolean
                                            insecureSkipTLS:
                                              type: boolean
                                            passwordSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            repo:
                                              type: string
                                            revision:
                                              type: string
                                            singleBranch:
                                              type: boolean
                                            sshPrivateKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - repo
                                          type: object
                                        globalName:
                                          type: string
                                        hdfs:
                                          properties:
                                            addresses:
                                              items:
                                                type: string
                                              type: array
                                            dataTransferProtection:
                                              type: string
                                            force:
                                              type: boolean
                                            hdfsUser:
                                              type: string
                                            krbCCacheSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbConfigConfigMap:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbKeytabSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbRealm:
                                              type: string
                                            krbServicePrincipalName:
                                              type: string
                                            krbUsername:
                                              type: string
                                            path:
                                              type: string
                                          required:
                                          - path
                                          type: object
                                        http:
                                          properties:
                                            auth:
                                              properties:
                                                basicAuth:
                                                  properties:
                                                    passwordSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    usernameSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                clientCert:
                                                  properties:
                                                    clientCertSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                oauth2:
                                                  properties:
                                                    clientIDSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientSecretSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    endpointParams:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - key
                                                        type: object
                                                      type: array
                                                    scopes:
                                                      items:
                                                        type: string
                                                      type: array
                                                    tokenURLSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                              type: object
                                            headers:
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                required:
                                                - name
                                                - value
                                                type: object
                                              type: array
                                            url:
                                              type: string
                                          required:
                                          - url
                                          type: object
                                        mode:
                                          format: int32
                                          maximum: 511
                                          minimum: 0
                                          type: integer
                                        name:
                                          pattern: ^[-a-zA-Z0-9_{}.]+$
                                          type: string
                                        optional:
                                          type: boolean
                                        oss:
                                          properties:
                                            accessKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              type: string
                                            createBucketIfNotPresent:
                                              type: boolean
                                            endpoint:
                                              type: string
                                            key:
                                              type: string
                                            lifecycleRule:
                                              properties:
                                                markDeletionAfterDays:
                                                  format: int32
                                                  type: integer
                                                markInfrequentAccessAfterDays:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            secretKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            securityToken:
                                              type: string
                                            useSDKCreds:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                        path:
                                          type: string
                                        plugin:
                                          properties:
                                            configuration:
                                              type: string
                                            connectionTimeoutSeconds:
                                              format: int32
                                              type: integer
                                            key:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - key
                                          type: object
                                        raw:
                                          properties:
                                            data:
                                              type: string
                                          required:
                                          - data
                                          type: object
                                        recurseMode:
                                          type: boolean
                                        s3:
                                          properties:
                                            accessKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              type: string
                                            caSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            createBucketIfNotPresent:
                                              properties:
                                                objectLocking:
                                                  type: boolean
                                              type: object
                                            encryptionOptions:
                                              properties:
                                                enableEncryption:
                                                  type: boolean
                                                kmsEncryptionContext:
                                                  type: string
                                                kmsKeyId:
                                                  type: string
                                                serverSideCustomerKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            endpoint:
                                              type: string
                                            insecure:
                                              type: boolean
                                            key:
                                              type: string
                                            region:
                                              type: string
                                            roleARN:
                                              type: string
                                            secretKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            sessionTokenSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            useSDKCreds:
                                              type: boolean
                                          type: object
                                        subPath:
                                          type: string
                                      required:
                                      - name
                                      type: object
                                      x-kubernetes-validations:
                                      - message: at most one artifact location can be specified
                                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                    type: array
                                  parameters:
                                    items:
                                      properties:
                                        default:
                                          type: string
                                        description:
                                          type: string
                                        enum:
                                          items:
                                            type: string
                                          minItems: 1
                                          type: array
                                        globalName:
                                          type: string
                                        name:
                                          pattern: ^[-a-zA-Z0-9_]+$
                                          type: string
                                        value:
                                          type: string
                                        valueFrom:
                                          properties:
                                            configMapKeyRef:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            default:
                                              type: string
                                            event:
                                              type: string
                                            expression:
                                              type: string
                                            jqFilter:
                                              type: string
                                            jsonPath:
                                              type: string
                                            parameter:
                                              type: string
                                            path:
                                              type: string
                                            supplied:
                                              type: object
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                type: object
                              continueOn:
                                properties:
                                  error:
                                    type: boolean
                                  failed:
                                    type: boolean
                                type: object
                              hooks:
                                additionalProperties:
                                  properties:
                                    arguments:
                                      properties:
                                        artifacts:
                                          items:
                                            properties:
                                              archive:
                                                properties:
                                                  none:
                                                    type: object
                                                  tar:
                                                    properties:
                                                      compressionLevel:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  zip:
                                                    type: object
                                                type: object
                                              archiveLogs:
                                                type: boolean
                                              artifactGC:
                                                properties:
                                                  podMetadata:
                                                    properties:
                                                      annotations:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                      labels:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                    type: object
                                                  serviceAccountName:
                                                    type: string
                                                  strategy:
                                                    enum:
                                                    - ''
                                                    - OnWorkflowCompletion
                                                    - OnWorkflowDeletion
                                                    - Never
                                                    type: string
                                                type: object
                                              artifactory:
                                                properties:
                                                  passwordSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  url:
                                                    type: string
                                                  usernameSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - url
                                                type: object
                                              azure:
                                                properties:
                                                  accountKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  blob:
                                                    type: string
                                                  container:
                                                    type: string
                                                  endpoint:
                                                    type: string
                                                  useSDKCreds:
                                                    type: boolean
                                                required:
                                                - blob
                                                - container
                                                - endpoint
                                                type: object
                                              deleted:
                                                type: boolean
                                              from:
                                                type: string
                                              fromExpression:
                                                type: string
                                              gcs:
                                                properties:
                                                  bucket:
                                                    type: string
                                                  key:
                                                    type: string
                                                  serviceAccountKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - key
                                                type: object
                                              git:
                                                properties:
                                                  branch:
                                                    type: string
                                                  depth:
                                                    format: int64
                                                    type: integer
                                                  disableSubmodules:
                                                    type: boolean
                                                  fetch:
                                                    items:
                                                      type: string
                                                    type: array
                                                  insecureIgnoreHostKey:
                                                    type: boolean
                                                  insecureSkipTLS:
                                                    type: boolean
                                                  passwordSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  repo:
                                                    type: string
                                                  revision:
                                                    type: string
                                                  singleBranch:
                                                    type: boolean
                                                  sshPrivateKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - repo
                                                type: object
                                              globalName:
                                                type: string
                                              hdfs:
                                                properties:
                                                  addresses:
                                                    items:
                                                      type: string
                                                    type: array
                                                  dataTransferProtection:
                                                    type: string
                                                  force:
                                                    type: boolean
                                                  hdfsUser:
                                                    type: string
                                                  krbCCacheSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbConfigConfigMap:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbKeytabSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbRealm:
                                                    type: string
                                                  krbServicePrincipalName:
                                                    type: string
                                                  krbUsername:
                                                    type: string
                                                  path:
                                                    type: string
                                                required:
                                                - path
                                                type: object
                                              http:
                                                properties:
                                                  auth:
                                                    properties:
                                                      basicAuth:
                                                        properties:
                                                          passwordSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          usernameSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      clientCert:
                                                        properties:
                                                          clientCertSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientKeySecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      oauth2:
                                                        properties:
                                                          clientIDSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientSecretSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          endpointParams:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                value:
                                                                  type: string
                                                              required:
                                                              - key
                                                              type: object
                                                            type: array
                                                          scopes:
                                                            items:
                                                              type: string
                                                            type: array
                                                          tokenURLSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                    type: object
                                                  headers:
                                                    items:
                                                      properties:
                                                        name:
                                                          type: string
                                                        value:
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  url:
                                                    type: string
                                                required:
                                                - url
                                                type: object
                                              mode:
                                                format: int32
                                                maximum: 511
                                                minimum: 0
                                                type: integer
                                              name:
                                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                                type: string
                                              optional:
                                                type: boolean
                                              oss:
                                                properties:
                                                  accessKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    type: string
                                                  createBucketIfNotPresent:
                                                    type: boolean
                                                  endpoint:
                                                    type: string
                                                  key:
                                                    type: string
                                                  lifecycleRule:
                                                    properties:
                                                      markDeletionAfterDays:
                                                        format: int32
                                                        type: integer
                                                      markInfrequentAccessAfterDays:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  secretKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  securityToken:
                                                    type: string
                                                  useSDKCreds:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                              path:
                                                type: string
                                              plugin:
                                                properties:
                                                  configuration:
                                                    type: string
                                                  connectionTimeoutSeconds:
                                                    format: int32
                                                    type: integer
                                                  key:
                                                    type: string
                                                  name:
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              raw:
                                                properties:
                                                  data:
                                                    type: string
                                                required:
                                                - data
                                                type: object
                                              recurseMode:
                                                type: boolean
                                              s3:
                                                properties:
                                                  accessKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    type: string
                                                  caSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  createBucketIfNotPresent:
                                                    properties:
                                                      objectLocking:
                                                        type: boolean
                                                    type: object
                                                  encryptionOptions:
                                                    properties:
                                                      enableEncryption:
                                                        type: boolean
                                                      kmsEncryptionContext:
                                                        type: string
                                                      kmsKeyId:
                                                        type: string
                                                      serverSideCustomerKeySecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  endpoint:
                                                    type: string
                                                  insecure:
                                                    type: boolean
                                                  key:
                                                    type: string
                                                  region:
                                                    type: string
                                                  roleARN:
                                                    type: string
                                                  secretKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  sessionTokenSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  useSDKCreds:
                                                    type: boolean
                                                type: object
                                              subPath:
                                                type: string
                                            required:
                                            - name
                                            type: object
                                            x-kubernetes-validations:
                                            - message: at most one artifact location can be specified
                                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                          type: array
                                        parameters:
                                          items:
                                            properties:
                                              default:
                                                type: string
                                              description:
                                                type: string
                                              enum:
                                                items:
                                                  type: string
                                                minItems: 1
                                                type: array
                                              globalName:
                                                type: string
                                              name:
                                                pattern: ^[-a-zA-Z0-9_]+$
                                                type: string
                                              value:
                                                type: string
                                              valueFrom:
                                                properties:
                                                  configMapKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  default:
                                                    type: string
                                                  event:
                                                    type: string
                                                  expression:
                                                    type: string
                                                  jqFilter:
                                                    type: string
                                                  jsonPath:
                                                    type: string
                                                  parameter:
                                                    type: string
                                                  path:
                                                    type: string
                                                  supplied:
                                                    type: object
                                                type: object
                                            required:
                                            - name
                                            type: object
                                          type: array
                                      type: object
                                    expression:
                                      type: string
                                    template:
                                      type: string
                                    templateRef:
                                      properties:
                                        clusterScope:
                                          type: boolean
                                        name:
                                          type: string
                                        template:
                                          type: string
                                      type: object
                                  type: object
                                type: object
                              inline:
                                x-kubernetes-preserve-unknown-fields: true
                              name:
                                maxLength: 128
                                pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                type: string
                              onExit:
                                type: string
                              template:
                                type: string
                              templateRef:
                                properties:
                                  clusterScope:
                                    type: boolean
                                  name:
                                    type: string
                                  template:
                                    type: string
                                type: object
                              when:
                                type: string
                              withItems:
                                x-kubernetes-preserve-unknown-fields: true
                              withParam:
                                type: string
                              withSequence:
                                properties:
                                  count:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  end:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  format:
                                    type: string
                                  start:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                type: object
                                x-kubernetes-validations:
                                - message: only one of count or end can be defined
                                  rule: '!(has(self.count) && has(self.end))'
                            type: object
                          type: array
                        minItems: 1
                        type: array
                      suspend:
                        properties:
                          duration:
                            type: string
                        type: object
                      synchronization:
                        properties:
                          mutexes:
                            items:
                              properties:
                                database:
                                  type: boolean
                                name:
                                  type: string
                                namespace:
                                  type: string
                              type: object
                            type: array
                          semaphores:
                            items:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                database:
                                  properties:
                                    key:
                                      type: string
                                  required:
                                  - key
                                  type: object
                                namespace:
                                  type: string
                              type: object
                            type: array
                        type: object
                      timeout:
                        type: string
                      tolerations:
                        items:
                          properties:
                            effect:
                              type: string
                            key:
                              type: string
                            operator:
                              type: string
                            tolerationSeconds:
                              format: int64
                              type: integer
                            value:
                              type: string
                          type: object
                        type: array
                      volumes:
                        items:
                          properties:
                            awsElasticBlockStore:
                              properties:
                                fsType:
                                  type: string
                                partition:
                                  format: int32
                                  type: integer
                                readOnly:
                                  type: boolean
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            azureDisk:
                              properties:
                                cachingMode:
                                  type: string
                                diskName:
                                  type: string
                                diskURI:
                                  type: string
                                fsType:
                                  default: ext4
                                  type: string
                                kind:
                                  type: string
                                readOnly:
                                  default: false
                                  type: boolean
                              required:
                              - diskName
                              - diskURI
                              type: object
                            azureFile:
                              properties:
                                readOnly:
                                  type: boolean
                                secretName:
                                  type: string
                                shareName:
                                  type: string
                              required:
                              - secretName
                              - shareName
                              type: object
                            cephfs:
                              properties:
                                monitors:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretFile:
                                  type: string
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                                user:
                                  type: string
                              required:
                              - monitors
                              type: object
                            cinder:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            configMap:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - key
                                    - path
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            csi:
                              properties:
                                driver:
                                  type: string
                                fsType:
                                  type: string
                                nodePublishSecretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                                readOnly:
                                  type: boolean
                                volumeAttributes:
                                  additionalProperties:
                                    type: string
                                  type: object
                              required:
                              - driver
                              type: object
                            downwardAPI:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - path
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            emptyDir:
                              properties:
                                medium:
                                  type: string
                                sizeLimit:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                              type: object
                            ephemeral:
                              properties:
                                volumeClaimTemplate:
                                  properties:
                                    metadata:
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        finalizers:
                                          items:
                                            type: string
                                          type: array
                                        generateName:
                                          type: string
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        name:
                                          type: string
                                        namespace:
                                          type: string
                                      type: object
                                    spec:
                                      properties:
                                        accessModes:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        dataSource:
                                          properties:
                                            apiGroup:
                                              type: string
                                            kind:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        dataSourceRef:
                                          properties:
                                            apiGroup:
                                              type: string
                                            kind:
                                              type: string
                                            name:
                                              type: string
                                            namespace:
                                              type: string
                                          required:
                                          - kind
                                          - name
                                          type: object
                                        resources:
                                          properties:
                                            limits:
                                              additionalProperties:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              type: object
                                            requests:
                                              additionalProperties:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                x-kubernetes-int-or-string: true
                                              type: object
                                          type: object
                                        selector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        storageClassName:
                                          type: string
                                        volumeAttributesClassName:
                                          type: string
                                        volumeMode:
                                          type: string
                                        volumeName:
                                          type: string
                                      type: object
                                  required:
                                  - spec
                                  type: object
                              type: object
                            fc:
                              properties:
                                fsType:
                                  type: string
                                lun:
                                  format: int32
                                  type: integer
                                readOnly:
                                  type: boolean
                                targetWWNs:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                wwids:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            flexVolume:
                              properties:
                                driver:
                                  type: string
                                fsType:
                                  type: string
                                options:
                                  additionalProperties:
                                    type: string
                                  type: object
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - driver
                              type: object
                            flocker:
                              properties:
                                datasetName:
                                  type: string
                                datasetUUID:
                                  type: string
                              type: object
                            gcePersistentDisk:
                              properties:
                                fsType:
                                  type: string
                                partition:
                                  format: int32
                                  type: integer
                                pdName:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - pdName
                              type: object
                            gitRepo:
                              properties:
                                directory:
                                  type: string
                                repository:
                                  type: string
                                revision:
                                  type: string
                              required:
                              - repository
                              type: object
                            glusterfs:
                              properties:
                                endpoints:
                                  type: string
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - endpoints
                              - path
                              type: object
                            hostPath:
                              properties:
                                path:
                                  type: string
                                type:
                                  type: string
                              required:
                              - path
                              type: object
                            image:
                              properties:
                                pullPolicy:
                                  type: string
                                reference:
                                  type: string
                              type: object
                            iscsi:
                              properties:
                                chapAuthDiscovery:
                                  type: boolean
                                chapAuthSession:
                                  type: boolean
                                fsType:
                                  type: string
                                initiatorName:
                                  type: string
                                iqn:
                                  type: string
                                iscsiInterface:
                                  default: default
                                  type: string
                                lun:
                                  format: int32
                                  type: integer
                                portals:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                                targetPortal:
                                  type: string
                              required:
                              - iqn
                              - lun
                              - targetPortal
                              type: object
                            name:
                              type: string
                            nfs:
                              properties:
                                path:
                                  type: string
                                readOnly:
                                  type: boolean
                                server:
                                  type: string
                              required:
                              - path
                              - server
                              type: object
                            persistentVolumeClaim:
                              properties:
                                claimName:
                                  type: string
                                readOnly:
                                  type: boolean
                              required:
                              - claimName
                              type: object
                            photonPersistentDisk:
                              properties:
                                fsType:
                                  type: string
                                pdID:
                                  type: string
                              required:
                              - pdID
                              type: object
                            portworxVolume:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                volumeID:
                                  type: string
                              required:
                              - volumeID
                              type: object
                            projected:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                sources:
                                  items:
                                    properties:
                                      clusterTrustBundle:
                                        properties:
                                          labelSelector:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          name:
                                            type: string
                                          optional:
                                            type: boolean
                                          path:
                                            type: string
                                          signerName:
                                            type: string
                                        required:
                                        - path
                                        type: object
                                      configMap:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - key
                                              - path
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      downwardAPI:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                fieldRef:
                                                  properties:
                                                    apiVersion:
                                                      type: string
                                                    fieldPath:
                                                      type: string
                                                  required:
                                                  - fieldPath
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                                resourceFieldRef:
                                                  properties:
                                                    containerName:
                                                      type: string
                                                    divisor:
                                                      anyOf:
                                                      - type: integer
                                                      - type: string
                                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                      x-kubernetes-int-or-string: true
                                                    resource:
                                                      type: string
                                                  required:
                                                  - resource
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - path
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      secret:
                                        properties:
                                          items:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                mode:
                                                  format: int32
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - key
                                              - path
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      serviceAccountToken:
                                        properties:
                                          audience:
                                            type: string
                                          expirationSeconds:
                                            format: int64
                                            type: integer
                                          path:
                                            type: string
                                        required:
                                        - path
                                        type: object
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            quobyte:
                              properties:
                                group:
                                  type: string
                                readOnly:
                                  type: boolean
                                registry:
                                  type: string
                                tenant:
                                  type: string
                                user:
                                  type: string
                                volume:
                                  type: string
                              required:
                              - registry
                              - volume
                              type: object
                            rbd:
                              properties:
                                fsType:
                                  type: string
                                image:
                                  type: string
                                keyring:
                                  default: /etc/ceph/keyring
                                  type: string
                                monitors:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                pool:
                                  default: rbd
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                                user:
                                  default: admin
                                  type: string
                              required:
                              - image
                              - monitors
                              type: object
                            scaleIO:
                              properties:
                                fsType:
                                  default: xfs
                                  type: string
                                gateway:
                                  type: string
                                protectionDomain:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sslEnabled:
                                  type: boolean
                                storageMode:
                                  default: ThinProvisioned
                                  type: string
                                storagePool:
                                  type: string
                                system:
                                  type: string
                                volumeName:
                                  type: string
                              required:
                              - gateway
                              - secretRef
                              - system
                              type: object
                            secret:
                              properties:
                                defaultMode:
                                  format: int32
                                  type: integer
                                items:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      mode:
                                        format: int32
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - key
                                    - path
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                optional:
                                  type: boolean
                                secretName:
                                  type: string
                              type: object
                            storageos:
                              properties:
                                fsType:
                                  type: string
                                readOnly:
                                  type: boolean
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                                volumeName:
                                  type: string
                                volumeNamespace:
                                  type: string
                              type: object
                            vsphereVolume:
                              properties:
                                fsType:
                                  type: string
                                storagePolicyID:
                                  type: string
                                storagePolicyName:
                                  type: string
                                volumePath:
                                  type: string
                              required:
                              - volumePath
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                    type: object
                  templates:
                    description: 'Templates is a list of workflow templates used in a workflow

                      MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                    items:
                      description: Template is a reusable and composable unit of execution in a workflow
                      properties:
                        activeDeadlineSeconds:
                          anyOf:
                          - type: integer
                          - type: string
                          description: 'Optional duration in seconds relative to the StartTime that the pod may be active on a node

                            before the system actively tries to terminate the pod; value must be positive integer

                            This field is only applicable to container and script templates.'
                          x-kubernetes-int-or-string: true
                        affinity:
                          description: 'Affinity sets the pod''s scheduling constraints

                            Overrides the affinity set at the workflow level (if any)'
                          properties:
                            nodeAffinity:
                              description: Describes node affinity scheduling rules for the pod.
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                    the affinity expressions specified by this field, but it may choose

                                    a node that violates one or more of the expressions. The node that is

                                    most preferred is the one with the greatest sum of weights, i.e.

                                    for each node that meets all of the scheduling requirements (resource

                                    request, requiredDuringScheduling affinity expressions, etc.),

                                    compute a sum by iterating through the elements of this field and adding

                                    "weight" to the sum if the node matches the corresponding matchExpressions; the

                                    node(s) with the highest sum are the most preferred.'
                                  items:
                                    description: 'An empty preferred scheduling term matches all objects with implicit weight 0

                                      (i.e. it''s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).'
                                    properties:
                                      preference:
                                        description: A node selector term, associated with the corresponding weight.
                                        properties:
                                          matchExpressions:
                                            description: A list of node selector requirements by node's labels.
                                            items:
                                              description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                                that relates the key and values.'
                                              properties:
                                                key:
                                                  description: The label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'Represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                                  type: string
                                                values:
                                                  description: 'An array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. If the operator is Gt or Lt, the values

                                                    array must have a single element, which will be interpreted as an integer.

                                                    This array is replaced during a strategic merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchFields:
                                            description: A list of node selector requirements by node's fields.
                                            items:
                                              description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                                that relates the key and values.'
                                              properties:
                                                key:
                                                  description: The label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'Represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                                  type: string
                                                values:
                                                  description: 'An array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. If the operator is Gt or Lt, the values

                                                    array must have a single element, which will be interpreted as an integer.

                                                    This array is replaced during a strategic merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      weight:
                                        description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                                        format: int32
                                        type: integer
                                    required:
                                    - preference
                                    - weight
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  description: 'If the affinity requirements specified by this field are not met at

                                    scheduling time, the pod will not be scheduled onto the node.

                                    If the affinity requirements specified by this field cease to be met

                                    at some point during pod execution (e.g. due to an update), the system

                                    may or may not try to eventually evict the pod from its node.'
                                  properties:
                                    nodeSelectorTerms:
                                      description: Required. A list of node selector terms. The terms are ORed.
                                      items:
                                        description: 'A null or empty node selector term matches no objects. The requirements of

                                          them are ANDed.

                                          The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.'
                                        properties:
                                          matchExpressions:
                                            description: A list of node selector requirements by node's labels.
                                            items:
                                              description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                                that relates the key and values.'
                                              properties:
                                                key:
                                                  description: The label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'Represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                                  type: string
                                                values:
                                                  description: 'An array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. If the operator is Gt or Lt, the values

                                                    array must have a single element, which will be interpreted as an integer.

                                                    This array is replaced during a strategic merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchFields:
                                            description: A list of node selector requirements by node's fields.
                                            items:
                                              description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                                that relates the key and values.'
                                              properties:
                                                key:
                                                  description: The label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'Represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                                  type: string
                                                values:
                                                  description: 'An array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. If the operator is Gt or Lt, the values

                                                    array must have a single element, which will be interpreted as an integer.

                                                    This array is replaced during a strategic merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  required:
                                  - nodeSelectorTerms
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            podAffinity:
                              description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                    the affinity expressions specified by this field, but it may choose

                                    a node that violates one or more of the expressions. The node that is

                                    most preferred is the one with the greatest sum of weights, i.e.

                                    for each node that meets all of the scheduling requirements (resource

                                    request, requiredDuringScheduling affinity expressions, etc.),

                                    compute a sum by iterating through the elements of this field and adding

                                    "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                                    node(s) with the highest sum are the most preferred.'
                                  items:
                                    description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                    properties:
                                      podAffinityTerm:
                                        description: Required. A pod affinity term, associated with the corresponding weight.
                                        properties:
                                          labelSelector:
                                            description: 'A label query over a set of resources, in this case pods.

                                              If it''s null, this PodAffinityTerm matches with no Pods.'
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                items:
                                                  description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                    relates the key and values.'
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: 'operator represents a key''s relationship to a set of values.

                                                        Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                      type: string
                                                    values:
                                                      description: 'values is an array of string values. If the operator is In or NotIn,

                                                        the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                        the values array must be empty. This array is replaced during a strategic

                                                        merge patch.'
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                  map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                  operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          matchLabelKeys:
                                            description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                              be taken into consideration. The keys are used to lookup values from the

                                              incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                              to select the group of existing pods which pods will be taken into consideration

                                              for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                              pod labels will be ignored. The default value is empty.

                                              The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                              Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          mismatchLabelKeys:
                                            description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                              be taken into consideration. The keys are used to lookup values from the

                                              incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                              to select the group of existing pods which pods will be taken into consideration

                                              for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                              pod labels will be ignored. The default value is empty.

                                              The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                              Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          namespaceSelector:
                                            description: 'A label query over the set of namespaces that the term applies to.

                                              The term is applied to the union of the namespaces selected by this field

                                              and the ones listed in the namespaces field.

                                              null selector and null or empty namespaces list means "this pod''s namespace".

                                              An empty selector ({}) matches all namespaces.'
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                items:
                                                  description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                    relates the key and values.'
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: 'operator represents a key''s relationship to a set of values.

                                                        Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                      type: string
                                                    values:
                                                      description: 'values is an array of string values. If the operator is In or NotIn,

                                                        the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                        the values array must be empty. This array is replaced during a strategic

                                                        merge patch.'
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                  map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                  operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          namespaces:
                                            description: 'namespaces specifies a static list of namespace names that the term applies to.

                                              The term is applied to the union of the namespaces listed in this field

                                              and the ones selected by namespaceSelector.

                                              null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          topologyKey:
                                            description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                              the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                              whose value of the label with key topologyKey matches that of any node on which any of the

                                              selected pods is running.

                                              Empty topologyKey is not allowed.'
                                            type: string
                                        required:
                                        - topologyKey
                                        type: object
                                      weight:
                                        description: 'weight associated with matching the corresponding podAffinityTerm,

                                          in the range 1-100.'
                                        format: int32
                                        type: integer
                                    required:
                                    - podAffinityTerm
                                    - weight
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  description: 'If the affinity requirements specified by this field are not met at

                                    scheduling time, the pod will not be scheduled onto the node.

                                    If the affinity requirements specified by this field cease to be met

                                    at some point during pod execution (e.g. due to a pod label update), the

                                    system may or may not try to eventually evict the pod from its node.

                                    When there are multiple elements, the lists of nodes corresponding to each

                                    podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                                  items:
                                    description: 'Defines a set of pods (namely those matching the labelSelector

                                      relative to the given namespace(s)) that this pod should be

                                      co-located (affinity) or not co-located (anti-affinity) with,

                                      where co-located is defined as running on a node whose value of

                                      the label with key <topologyKey> matches that of any node on which

                                      a pod of the set of pods is running'
                                    properties:
                                      labelSelector:
                                        description: 'A label query over a set of resources, in this case pods.

                                          If it''s null, this PodAffinityTerm matches with no Pods.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                          Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                          Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        description: 'A label query over the set of namespaces that the term applies to.

                                          The term is applied to the union of the namespaces selected by this field

                                          and the ones listed in the namespaces field.

                                          null selector and null or empty namespaces list means "this pod''s namespace".

                                          An empty selector ({}) matches all namespaces.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        description: 'namespaces specifies a static list of namespace names that the term applies to.

                                          The term is applied to the union of the namespaces listed in this field

                                          and the ones selected by namespaceSelector.

                                          null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                          the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                          whose value of the label with key topologyKey matches that of any node on which any of the

                                          selected pods is running.

                                          Empty topologyKey is not allowed.'
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            podAntiAffinity:
                              description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                              properties:
                                preferredDuringSchedulingIgnoredDuringExecution:
                                  description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                    the anti-affinity expressions specified by this field, but it may choose

                                    a node that violates one or more of the expressions. The node that is

                                    most preferred is the one with the greatest sum of weights, i.e.

                                    for each node that meets all of the scheduling requirements (resource

                                    request, requiredDuringScheduling anti-affinity expressions, etc.),

                                    compute a sum by iterating through the elements of this field and adding

                                    "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                                    node(s) with the highest sum are the most preferred.'
                                  items:
                                    description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                    properties:
                                      podAffinityTerm:
                                        description: Required. A pod affinity term, associated with the corresponding weight.
                                        properties:
                                          labelSelector:
                                            description: 'A label query over a set of resources, in this case pods.

                                              If it''s null, this PodAffinityTerm matches with no Pods.'
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                items:
                                                  description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                    relates the key and values.'
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: 'operator represents a key''s relationship to a set of values.

                                                        Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                      type: string
                                                    values:
                                                      description: 'values is an array of string values. If the operator is In or NotIn,

                                                        the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                        the values array must be empty. This array is replaced during a strategic

                                                        merge patch.'
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                  map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                  operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          matchLabelKeys:
                                            description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                              be taken into consideration. The keys are used to lookup values from the

                                              incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                              to select the group of existing pods which pods will be taken into consideration

                                              for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                              pod labels will be ignored. The default value is empty.

                                              The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                              Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          mismatchLabelKeys:
                                            description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                              be taken into consideration. The keys are used to lookup values from the

                                              incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                              to select the group of existing pods which pods will be taken into consideration

                                              for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                              pod labels will be ignored. The default value is empty.

                                              The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                              Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          namespaceSelector:
                                            description: 'A label query over the set of namespaces that the term applies to.

                                              The term is applied to the union of the namespaces selected by this field

                                              and the ones listed in the namespaces field.

                                              null selector and null or empty namespaces list means "this pod''s namespace".

                                              An empty selector ({}) matches all namespaces.'
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                items:
                                                  description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                    relates the key and values.'
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: 'operator represents a key''s relationship to a set of values.

                                                        Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                      type: string
                                                    values:
                                                      description: 'values is an array of string values. If the operator is In or NotIn,

                                                        the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                        the values array must be empty. This array is replaced during a strategic

                                                        merge patch.'
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                  map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                  operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          namespaces:
                                            description: 'namespaces specifies a static list of namespace names that the term applies to.

                                              The term is applied to the union of the namespaces listed in this field

                                              and the ones selected by namespaceSelector.

                                              null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          topologyKey:
                                            description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                              the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                              whose value of the label with key topologyKey matches that of any node on which any of the

                                              selected pods is running.

                                              Empty topologyKey is not allowed.'
                                            type: string
                                        required:
                                        - topologyKey
                                        type: object
                                      weight:
                                        description: 'weight associated with matching the corresponding podAffinityTerm,

                                          in the range 1-100.'
                                        format: int32
                                        type: integer
                                    required:
                                    - podAffinityTerm
                                    - weight
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                requiredDuringSchedulingIgnoredDuringExecution:
                                  description: 'If the anti-affinity requirements specified by this field are not met at

                                    scheduling time, the pod will not be scheduled onto the node.

                                    If the anti-affinity requirements specified by this field cease to be met

                                    at some point during pod execution (e.g. due to a pod label update), the

                                    system may or may not try to eventually evict the pod from its node.

                                    When there are multiple elements, the lists of nodes corresponding to each

                                    podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                                  items:
                                    description: 'Defines a set of pods (namely those matching the labelSelector

                                      relative to the given namespace(s)) that this pod should be

                                      co-located (affinity) or not co-located (anti-affinity) with,

                                      where co-located is defined as running on a node whose value of

                                      the label with key <topologyKey> matches that of any node on which

                                      a pod of the set of pods is running'
                                    properties:
                                      labelSelector:
                                        description: 'A label query over a set of resources, in this case pods.

                                          If it''s null, this PodAffinityTerm matches with no Pods.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                          Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                          Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        description: 'A label query over the set of namespaces that the term applies to.

                                          The term is applied to the union of the namespaces selected by this field

                                          and the ones listed in the namespaces field.

                                          null selector and null or empty namespaces list means "this pod''s namespace".

                                          An empty selector ({}) matches all namespaces.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        description: 'namespaces specifies a static list of namespace names that the term applies to.

                                          The term is applied to the union of the namespaces listed in this field

                                          and the ones selected by namespaceSelector.

                                          null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                          the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                          whose value of the label with key topologyKey matches that of any node on which any of the

                                          selected pods is running.

                                          Empty topologyKey is not allowed.'
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                          type: object
                        annotations:
                          additionalProperties:
                            type: string
                          description: Annotations is a list of annotations to add to the template at runtime
                          type: object
                        archiveLocation:
                          description: 'Location in which all files related to the step will be stored (logs, artifacts, etc...).

                            Can be overridden by individual items in Outputs. If omitted, will use the default

                            artifact repository location configured in the controller, appended with the

                            <workflowname>/<nodename> in the key.'
                          properties:
                            archiveLogs:
                              description: ArchiveLogs indicates if the container logs should be archived
                              type: boolean
                            artifactory:
                              description: Artifactory contains artifactory artifact location details
                              properties:
                                passwordSecret:
                                  description: PasswordSecret is the secret selector to the repository password
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  description: URL of the artifact
                                  type: string
                                usernameSecret:
                                  description: UsernameSecret is the secret selector to the repository username
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              description: Azure contains Azure Storage artifact location details
                              properties:
                                accountKeySecret:
                                  description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                  type: string
                                container:
                                  description: Container is the container where resources will be stored
                                  type: string
                                endpoint:
                                  description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                  type: string
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            gcs:
                              description: GCS contains GCS artifact location details
                              properties:
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                key:
                                  description: Key is the path in the bucket where the artifact resides
                                  type: string
                                serviceAccountKeySecret:
                                  description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              description: Git contains git artifact location details
                              properties:
                                branch:
                                  description: Branch is the branch to fetch when `SingleBranch` is enabled
                                  type: string
                                depth:
                                  description: 'Depth specifies clones/fetches should be shallow and include the given

                                    number of commits from the branch tip'
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  description: DisableSubmodules disables submodules during git clone
                                  type: boolean
                                fetch:
                                  description: Fetch specifies a number of refs that should be fetched before checkout
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                  type: boolean
                                insecureSkipTLS:
                                  description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                  type: boolean
                                passwordSecret:
                                  description: PasswordSecret is the secret selector to the repository password
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  description: Repo is the git repository
                                  type: string
                                revision:
                                  description: Revision is the git commit, tag, branch to checkout
                                  type: string
                                singleBranch:
                                  description: SingleBranch enables single branch clone, using the `branch` parameter
                                  type: boolean
                                sshPrivateKeySecret:
                                  description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  description: UsernameSecret is the secret selector to the repository username
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            hdfs:
                              description: HDFS contains HDFS artifact location details
                              properties:
                                addresses:
                                  description: Addresses is accessible addresses of HDFS name nodes
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                    It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                  type: string
                                force:
                                  description: Force copies a file forcibly even if it exists
                                  type: boolean
                                hdfsUser:
                                  description: 'HDFSUser is the user to access HDFS file system.

                                    It is ignored if either ccache or keytab is used.'
                                  type: string
                                krbCCacheSecret:
                                  description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                    Either ccache or keytab can be set to use Kerberos.'
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  description: 'KrbConfig is the configmap selector for Kerberos config as string

                                    It must be set if either ccache or keytab is used.'
                                  properties:
                                    key:
                                      description: The key to select.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                    Either ccache or keytab can be set to use Kerberos.'
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                    It must be set if keytab is used.'
                                  type: string
                                krbServicePrincipalName:
                                  description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                    It must be set if either ccache or keytab is used.'
                                  type: string
                                krbUsername:
                                  description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                    It must be set if keytab is used.'
                                  type: string
                                path:
                                  description: Path is a file path in HDFS
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              description: HTTP contains HTTP artifact location details
                              properties:
                                auth:
                                  description: Auth contains information for client authentication
                                  properties:
                                    basicAuth:
                                      description: BasicAuth describes the secret selectors required for basic authentication
                                      properties:
                                        passwordSecret:
                                          description: PasswordSecret is the secret selector to the repository password
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          description: UsernameSecret is the secret selector to the repository username
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      description: ClientCertAuth holds necessary information for client authentication via certificates
                                      properties:
                                        clientCertSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                      properties:
                                        clientIDSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                            properties:
                                              key:
                                                description: Name is the header name
                                                type: string
                                              value:
                                                description: Value is the literal value to use for the header
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                  items:
                                    description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                    properties:
                                      name:
                                        description: Name is the header name
                                        type: string
                                      value:
                                        description: Value is the literal value to use for the header
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  description: URL of the artifact
                                  type: string
                              required:
                              - url
                              type: object
                            oss:
                              description: OSS contains OSS artifact location details
                              properties:
                                accessKeySecret:
                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                createBucketIfNotPresent:
                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                  type: boolean
                                endpoint:
                                  description: Endpoint is the hostname of the bucket endpoint
                                  type: string
                                key:
                                  description: Key is the path in the bucket where the artifact resides
                                  type: string
                                lifecycleRule:
                                  description: LifecycleRule specifies how to manage bucket's lifecycle
                                  properties:
                                    markDeletionAfterDays:
                                      description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                  type: string
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              required:
                              - key
                              type: object
                            plugin:
                              description: Plugin contains plugin artifact location details
                              properties:
                                configuration:
                                  description: Configuration is the plugin defined configuration for the artifact driver plugin
                                  type: string
                                connectionTimeoutSeconds:
                                  description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                  format: int32
                                  type: integer
                                key:
                                  description: Key is the path in the artifact repository where the artifact resides
                                  type: string
                                name:
                                  description: Name is the name of the artifact driver plugin
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              description: Raw contains raw artifact location details
                              properties:
                                data:
                                  description: Data is the string contents of the artifact
                                  type: string
                              required:
                              - data
                              type: object
                            s3:
                              description: S3 contains S3 artifact location details
                              properties:
                                accessKeySecret:
                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                caSecret:
                                  description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                  properties:
                                    objectLocking:
                                      description: ObjectLocking Enable object locking
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  description: S3EncryptionOptions used to determine encryption options during s3 operations
                                  properties:
                                    enableEncryption:
                                      description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                      type: boolean
                                    kmsEncryptionContext:
                                      description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                      type: string
                                    kmsKeyId:
                                      description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                      type: string
                                    serverSideCustomerKeySecret:
                                      description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  description: Endpoint is the hostname of the bucket endpoint
                                  type: string
                                insecure:
                                  description: Insecure will connect to the service with TLS
                                  type: boolean
                                key:
                                  description: Key is the key in the bucket where the artifact resides
                                  type: string
                                region:
                                  description: Region contains the optional bucket region
                                  type: string
                                roleARN:
                                  description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                  type: string
                                secretKeySecret:
                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              type: object
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        automountServiceAccountToken:
                          description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods.

                            ServiceAccountName of ExecutorConfig must be specified if this value is false.'
                          type: boolean
                        container:
                          description: Container is the main container image to run in the pod
                          properties:
                            args:
                              description: 'Arguments to the entrypoint.

                                The container image''s CMD is used if this is not provided.

                                Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                of whether the variable exists or not. Cannot be updated.

                                More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            command:
                              description: 'Entrypoint array. Not executed within a shell.

                                The container image''s ENTRYPOINT is used if this is not provided.

                                Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                of whether the variable exists or not. Cannot be updated.

                                More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            env:
                              description: 'List of environment variables to set in the container.

                                Cannot be updated.'
                              items:
                                description: EnvVar represents an environment variable present in a Container.
                                properties:
                                  name:
                                    description: Name of the environment variable. Must be a C_IDENTIFIER.
                                    type: string
                                  value:
                                    description: 'Variable references $(VAR_NAME) are expanded

                                      using the previously defined environment variables in the container and

                                      any service environment variables. If a variable cannot be resolved,

                                      the reference in the input string will be unchanged. Double $$ are reduced

                                      to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                      "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                      Escaped references will never be expanded, regardless of whether the variable

                                      exists or not.

                                      Defaults to "".'
                                    type: string
                                  valueFrom:
                                    description: Source for the environment variable's value. Cannot be used if value is not empty.
                                    properties:
                                      configMapKeyRef:
                                        description: Selects a key of a ConfigMap.
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                          spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                        properties:
                                          apiVersion:
                                            description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                            type: string
                                          fieldPath:
                                            description: Path of the field to select in the specified API version.
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      resourceFieldRef:
                                        description: 'Selects a resource of the container: only resources limits and requests

                                          (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                        properties:
                                          containerName:
                                            description: 'Container name: required for volumes, optional for env vars'
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: Specifies the output format of the exposed resources, defaults to "1"
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            description: 'Required: resource to select'
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      secretKeyRef:
                                        description: Selects a key of a secret in the pod's namespace
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            envFrom:
                              description: 'List of sources to populate environment variables in the container.

                                The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                                will be reported as an event when the container is starting. When a key exists in multiple

                                sources, the value associated with the last source will take precedence.

                                Values defined by an Env with a duplicate key will take precedence.

                                Cannot be updated.'
                              items:
                                description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                                properties:
                                  configMapRef:
                                    description: The ConfigMap to select from
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  prefix:
                                    description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                    type: string
                                  secretRef:
                                    description: The Secret to select from
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            image:
                              description: 'Container image name.

                                More info: https://kubernetes.io/docs/concepts/containers/images

                                This field is optional to allow higher level config management to default or override

                                container images in workload controllers like Deployments and StatefulSets.'
                              type: string
                            imagePullPolicy:
                              description: 'Image pull policy.

                                One of Always, Never, IfNotPresent.

                                Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                                Cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                              type: string
                            lifecycle:
                              description: 'Actions that the management system should take in response to container lifecycle events.

                                Cannot be updated.'
                              properties:
                                postStart:
                                  description: 'PostStart is called immediately after a container is created. If the handler fails,

                                    the container is terminated and restarted according to its restart policy.

                                    Other management of the container blocks until the hook completes.

                                    More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                  properties:
                                    exec:
                                      description: Exec specifies a command to execute in the container.
                                      properties:
                                        command:
                                          description: 'Command is the command line to execute inside the container, the working directory for the

                                            command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                            not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                            a shell, you need to explicitly call out to that shell.

                                            Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies an HTTP GET request to perform.
                                      properties:
                                        host:
                                          description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                            "Host" in httpHeaders instead.'
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: 'The header field name.

                                                  This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          description: Path to access on the HTTP server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: 'Name or number of the port to access on the container.

                                            Number must be in the range 1 to 65535.

                                            Name must be an IANA_SVC_NAME.'
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: 'Scheme to use for connecting to the host.

                                            Defaults to HTTP.'
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      description: Sleep represents a duration that the container should sleep.
                                      properties:
                                        seconds:
                                          description: Seconds is the number of seconds to sleep.
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                        for backward compatibility. There is no validation of this field and

                                        lifecycle hooks will fail at runtime when it is specified.'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: 'Number or name of the port to access on the container.

                                            Number must be in the range 1 to 65535.

                                            Name must be an IANA_SVC_NAME.'
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  description: 'PreStop is called immediately before a container is terminated due to an

                                    API request or management event such as liveness/startup probe failure,

                                    preemption, resource contention, etc. The handler is not called if the

                                    container crashes or exits. The Pod''s termination grace period countdown begins before the

                                    PreStop hook is executed. Regardless of the outcome of the handler, the

                                    container will eventually terminate within the Pod''s termination grace

                                    period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                    or until the termination grace period is reached.

                                    More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                  properties:
                                    exec:
                                      description: Exec specifies a command to execute in the container.
                                      properties:
                                        command:
                                          description: 'Command is the command line to execute inside the container, the working directory for the

                                            command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                            not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                            a shell, you need to explicitly call out to that shell.

                                            Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies an HTTP GET request to perform.
                                      properties:
                                        host:
                                          description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                            "Host" in httpHeaders instead.'
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: 'The header field name.

                                                  This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          description: Path to access on the HTTP server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: 'Name or number of the port to access on the container.

                                            Number must be in the range 1 to 65535.

                                            Name must be an IANA_SVC_NAME.'
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: 'Scheme to use for connecting to the host.

                                            Defaults to HTTP.'
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      description: Sleep represents a duration that the container should sleep.
                                      properties:
                                        seconds:
                                          description: Seconds is the number of seconds to sleep.
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                        for backward compatibility. There is no validation of this field and

                                        lifecycle hooks will fail at runtime when it is specified.'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: 'Number or name of the port to access on the container.

                                            Number must be in the range 1 to 65535.

                                            Name must be an IANA_SVC_NAME.'
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                stopSignal:
                                  description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                    If not specified, the default is defined by the container runtime in use.

                                    StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                  type: string
                              type: object
                            livenessProbe:
                              description: 'Periodic probe of container liveness.

                                Container will be restarted if the probe fails.

                                Cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                    Defaults to 3. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                grpc:
                                  description: GRPC specifies a GRPC HealthCheckRequest.
                                  properties:
                                    port:
                                      description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                        (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                        If this is not specified, the default behavior is defined by gRPC.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container has started before liveness probes are initiated.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: 'How often (in seconds) to perform the probe.

                                    Default to 10 seconds. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                    Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: TCPSocket specifies a connection to a TCP port.
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                    The grace period is the duration in seconds after the processes running in the pod are sent

                                    a termination signal and the time when the processes are forcibly halted with a kill signal.

                                    Set this value longer than the expected cleanup time for your process.

                                    If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                    value overrides the value provided by the pod spec.

                                    Value must be non-negative integer. The value zero indicates stop immediately via

                                    the kill signal (no opportunity to shut down).

                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the probe times out.

                                    Defaults to 1 second. Minimum value is 1.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              description: 'Name of the container specified as a DNS_LABEL.

                                Each container in a pod must have a unique name (DNS_LABEL).

                                Cannot be updated.'
                              type: string
                            ports:
                              description: 'List of ports to expose from the container. Not specifying a port here

                                DOES NOT prevent that port from being exposed. Any port which is

                                listening on the default "0.0.0.0" address inside a container will be

                                accessible from the network.

                                Modifying this array with strategic merge patch may corrupt the data.

                                For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                                Cannot be updated.'
                              items:
                                description: ContainerPort represents a network port in a single container.
                                properties:
                                  containerPort:
                                    description: 'Number of port to expose on the pod''s IP address.

                                      This must be a valid port number, 0 < x < 65536.'
                                    format: int32
                                    type: integer
                                  hostIP:
                                    description: What host IP to bind the external port to.
                                    type: string
                                  hostPort:
                                    description: 'Number of port to expose on the host.

                                      If specified, this must be a valid port number, 0 < x < 65536.

                                      If HostNetwork is specified, this must match ContainerPort.

                                      Most containers do not need this.'
                                    format: int32
                                    type: integer
                                  name:
                                    description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                      named port in a pod must have a unique name. Name for the port that can be

                                      referred to by services.'
                                    type: string
                                  protocol:
                                    default: TCP
                                    description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                      Defaults to "TCP".'
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              description: 'Periodic probe of container service readiness.

                                Container will be removed from service endpoints if the probe fails.

                                Cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                    Defaults to 3. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                grpc:
                                  description: GRPC specifies a GRPC HealthCheckRequest.
                                  properties:
                                    port:
                                      description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                        (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                        If this is not specified, the default behavior is defined by gRPC.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container has started before liveness probes are initiated.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: 'How often (in seconds) to perform the probe.

                                    Default to 10 seconds. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                    Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: TCPSocket specifies a connection to a TCP port.
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                    The grace period is the duration in seconds after the processes running in the pod are sent

                                    a termination signal and the time when the processes are forcibly halted with a kill signal.

                                    Set this value longer than the expected cleanup time for your process.

                                    If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                    value overrides the value provided by the pod spec.

                                    Value must be non-negative integer. The value zero indicates stop immediately via

                                    the kill signal (no opportunity to shut down).

                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the probe times out.

                                    Defaults to 1 second. Minimum value is 1.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            resizePolicy:
                              description: Resources resize policy for the container.
                              items:
                                description: ContainerResizePolicy represents resource resize policy for the container.
                                properties:
                                  resourceName:
                                    description: 'Name of the resource to which this resource resize policy applies.

                                      Supported values: cpu, memory.'
                                    type: string
                                  restartPolicy:
                                    description: 'Restart policy to apply when specified resource is resized.

                                      If not specified, it defaults to NotRequired.'
                                    type: string
                                required:
                                - resourceName
                                - restartPolicy
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            resources:
                              description: 'Compute Resources required by this container.

                                Cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              properties:
                                claims:
                                  description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                    that are used by this container.


                                    This is an alpha field and requires enabling the

                                    DynamicResourceAllocation feature gate.


                                    This field is immutable. It can only be set for containers.'
                                  items:
                                    description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                    properties:
                                      name:
                                        description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                          the Pod where this field is used. It makes that resource available

                                          inside a container.'
                                        type: string
                                      request:
                                        description: 'Request is the name chosen for a request in the referenced claim.

                                          If empty, everything from the claim is made available, otherwise

                                          only the result of this request.'
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - name
                                  x-kubernetes-list-type: map
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Limits describes the maximum amount of compute resources allowed.

                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Requests describes the minimum amount of compute resources required.

                                    If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                    otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                              type: object
                            restartPolicy:
                              description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                                This field may only be set for init containers, and the only allowed value is "Always".

                                For non-init containers or when this field is not specified,

                                the restart behavior is defined by the Pod''s restart policy and the container type.

                                Setting the RestartPolicy as "Always" for the init container will have the following effect:

                                this init container will be continually restarted on

                                exit until all regular containers have terminated. Once all regular

                                containers have completed, all init containers with restartPolicy "Always"

                                will be shut down. This lifecycle differs from normal init containers and

                                is often referred to as a "sidecar" container. Although this init

                                container still starts in the init container sequence, it does not wait

                                for the container to complete before proceeding to the next init

                                container. Instead, the next init container starts immediately after this

                                init container is started, or after any startupProbe has successfully

                                completed.'
                              type: string
                            securityContext:
                              description: 'SecurityContext defines the security options the container should be run with.

                                If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                                More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                              properties:
                                allowPrivilegeEscalation:
                                  description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                    privileges than its parent process. This bool directly controls if

                                    the no_new_privs flag will be set on the container process.

                                    AllowPrivilegeEscalation is true always when the container is:

                                    1) run as Privileged

                                    2) has CAP_SYS_ADMIN

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  type: boolean
                                appArmorProfile:
                                  description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                    overrides the pod''s appArmorProfile.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  properties:
                                    localhostProfile:
                                      description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                        The profile must be preconfigured on the node to work.

                                        Must match the loaded name of the profile.

                                        Must be set if and only if type is "Localhost".'
                                      type: string
                                    type:
                                      description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                      type: string
                                  required:
                                  - type
                                  type: object
                                capabilities:
                                  description: 'The capabilities to add/drop when running containers.

                                    Defaults to the default set of capabilities granted by the container runtime.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  properties:
                                    add:
                                      description: Added capabilities
                                      items:
                                        description: Capability represent POSIX capabilities type
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    drop:
                                      description: Removed capabilities
                                      items:
                                        description: Capability represent POSIX capabilities type
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                privileged:
                                  description: 'Run container in privileged mode.

                                    Processes in privileged containers are essentially equivalent to root on the host.

                                    Defaults to false.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  type: boolean
                                procMount:
                                  description: 'procMount denotes the type of proc mount to use for the containers.

                                    The default value is Default which uses the container runtime defaults for

                                    readonly paths and masked paths.

                                    This requires the ProcMountType feature flag to be enabled.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  type: string
                                readOnlyRootFilesystem:
                                  description: 'Whether this container has a read-only root filesystem.

                                    Default is false.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  type: boolean
                                runAsGroup:
                                  description: 'The GID to run the entrypoint of the container process.

                                    Uses runtime default if unset.

                                    May also be set in PodSecurityContext.  If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  description: 'Indicates that the container must run as a non-root user.

                                    If true, the Kubelet will validate the image at runtime to ensure that it

                                    does not run as UID 0 (root) and fail to start the container if it does.

                                    If unset or false, no such validation will be performed.

                                    May also be set in PodSecurityContext.  If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: boolean
                                runAsUser:
                                  description: 'The UID to run the entrypoint of the container process.

                                    Defaults to user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext.  If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  description: 'The SELinux context to be applied to the container.

                                    If unspecified, the container runtime will allocate a random SELinux context for each

                                    container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  properties:
                                    level:
                                      description: Level is SELinux level label that applies to the container.
                                      type: string
                                    role:
                                      description: Role is a SELinux role label that applies to the container.
                                      type: string
                                    type:
                                      description: Type is a SELinux type label that applies to the container.
                                      type: string
                                    user:
                                      description: User is a SELinux user label that applies to the container.
                                      type: string
                                  type: object
                                seccompProfile:
                                  description: 'The seccomp options to use by this container. If seccomp options are

                                    provided at both the pod & container level, the container options

                                    override the pod options.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  properties:
                                    localhostProfile:
                                      description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                        The profile must be preconfigured on the node to work.

                                        Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                        Must be set if type is "Localhost". Must NOT be set for any other type.'
                                      type: string
                                    type:
                                      description: 'type indicates which kind of seccomp profile will be applied.

                                        Valid options are:


                                        Localhost - a profile defined in a file on the node should be used.

                                        RuntimeDefault - the container runtime default profile should be used.

                                        Unconfined - no profile should be applied.'
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  description: 'The Windows specific settings applied to all containers.

                                    If unspecified, the options from the PodSecurityContext will be used.

                                    If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                    Note that this field cannot be set when spec.os.name is linux.'
                                  properties:
                                    gmsaCredentialSpec:
                                      description: 'GMSACredentialSpec is where the GMSA admission webhook

                                        (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                        GMSA credential spec named by the GMSACredentialSpecName field.'
                                      type: string
                                    gmsaCredentialSpecName:
                                      description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                      type: string
                                    hostProcess:
                                      description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                        All of a Pod''s containers must have the same effective HostProcess value

                                        (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                        In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                      type: boolean
                                    runAsUserName:
                                      description: 'The UserName in Windows to run the entrypoint of the container process.

                                        Defaults to the user specified in image metadata if unspecified.

                                        May also be set in PodSecurityContext. If set in both SecurityContext and

                                        PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              description: 'StartupProbe indicates that the Pod has successfully initialized.

                                If specified, no other probes are executed until this completes successfully.

                                If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                                This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                                when it might take a long time to load data or warm a cache, than during steady-state operation.

                                This cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                    Defaults to 3. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                grpc:
                                  description: GRPC specifies a GRPC HealthCheckRequest.
                                  properties:
                                    port:
                                      description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                        (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                        If this is not specified, the default behavior is defined by gRPC.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container has started before liveness probes are initiated.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: 'How often (in seconds) to perform the probe.

                                    Default to 10 seconds. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                    Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: TCPSocket specifies a connection to a TCP port.
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                    The grace period is the duration in seconds after the processes running in the pod are sent

                                    a termination signal and the time when the processes are forcibly halted with a kill signal.

                                    Set this value longer than the expected cleanup time for your process.

                                    If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                    value overrides the value provided by the pod spec.

                                    Value must be non-negative integer. The value zero indicates stop immediately via

                                    the kill signal (no opportunity to shut down).

                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the probe times out.

                                    Defaults to 1 second. Minimum value is 1.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                                is not set, reads from stdin in the container will always result in EOF.

                                Default is false.'
                              type: boolean
                            stdinOnce:
                              description: 'Whether the container runtime should close the stdin channel after it has been opened by

                                a single attach. When stdin is true the stdin stream will remain open across multiple attach

                                sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                                first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                                at which time stdin is closed and remains closed until the container is restarted. If this

                                flag is false, a container processes that reads from stdin will never receive an EOF.

                                Default is false'
                              type: boolean
                            terminationMessagePath:
                              description: 'Optional: Path at which the file to which the container''s termination message

                                will be written is mounted into the container''s filesystem.

                                Message written is intended to be brief final status, such as an assertion failure message.

                                Will be truncated by the node if greater than 4096 bytes. The total message length across

                                all containers will be limited to 12kb.

                                Defaults to /dev/termination-log.

                                Cannot be updated.'
                              type: string
                            terminationMessagePolicy:
                              description: 'Indicate how the termination message should be populated. File will use the contents of

                                terminationMessagePath to populate the container status message on both success and failure.

                                FallbackToLogsOnError will use the last chunk of container log output if the termination

                                message file is empty and the container exited with an error.

                                The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                                Defaults to File.

                                Cannot be updated.'
                              type: string
                            tty:
                              description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                                Default is false.'
                              type: boolean
                            volumeDevices:
                              description: volumeDevices is the list of block devices to be used by the container.
                              items:
                                description: volumeDevice describes a mapping of a raw block device within a container.
                                properties:
                                  devicePath:
                                    description: devicePath is the path inside of the container that the device will be mapped to.
                                    type: string
                                  name:
                                    description: name must match the name of a persistentVolumeClaim in the pod
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - devicePath
                              x-kubernetes-list-type: map
                            volumeMounts:
                              description: 'Pod volumes to mount into the container''s filesystem.

                                Cannot be updated.'
                              items:
                                description: VolumeMount describes a mounting of a Volume within a container.
                                properties:
                                  mountPath:
                                    description: 'Path within the container at which the volume should be mounted.  Must

                                      not contain '':''.'
                                    type: string
                                  mountPropagation:
                                    description: 'mountPropagation determines how mounts are propagated from the host

                                      to container and the other way around.

                                      When not set, MountPropagationNone is used.

                                      This field is beta in 1.10.

                                      When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                      (which defaults to None).'
                                    type: string
                                  name:
                                    description: This must match the Name of a Volume.
                                    type: string
                                  readOnly:
                                    description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                      Defaults to false.'
                                    type: boolean
                                  recursiveReadOnly:
                                    description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                      recursively.


                                      If ReadOnly is false, this field has no meaning and must be unspecified.


                                      If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                      recursively read-only.  If this field is set to IfPossible, the mount is made

                                      recursively read-only, if it is supported by the container runtime.  If this

                                      field is set to Enabled, the mount is made recursively read-only if it is

                                      supported by the container runtime, otherwise the pod will not be started and

                                      an error will be generated to indicate the reason.


                                      If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                      None (or be unspecified, which defaults to None).


                                      If this field is not specified, it is treated as an equivalent of Disabled.'
                                    type: string
                                  subPath:
                                    description: 'Path within the volume from which the container''s volume should be mounted.

                                      Defaults to "" (volume''s root).'
                                    type: string
                                  subPathExpr:
                                    description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                      Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                      Defaults to "" (volume''s root).

                                      SubPathExpr and SubPath are mutually exclusive.'
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - mountPath
                              x-kubernetes-list-type: map
                            workingDir:
                              description: 'Container''s working directory.

                                If not specified, the container runtime''s default will be used, which

                                might be configured in the container image.

                                Cannot be updated.'
                              type: string
                          type: object
                        containerSet:
                          description: ContainerSet groups multiple containers within a single pod.
                          properties:
                            containers:
                              items:
                                properties:
                                  args:
                                    description: 'Arguments to the entrypoint.

                                      The container image''s CMD is used if this is not provided.

                                      Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                      cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                      to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                      produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                      of whether the variable exists or not. Cannot be updated.

                                      More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  command:
                                    description: 'Entrypoint array. Not executed within a shell.

                                      The container image''s ENTRYPOINT is used if this is not provided.

                                      Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                      cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                      to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                      produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                      of whether the variable exists or not. Cannot be updated.

                                      More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  dependencies:
                                    items:
                                      type: string
                                    type: array
                                  env:
                                    description: 'List of environment variables to set in the container.

                                      Cannot be updated.'
                                    items:
                                      description: EnvVar represents an environment variable present in a Container.
                                      properties:
                                        name:
                                          description: Name of the environment variable. Must be a C_IDENTIFIER.
                                          type: string
                                        value:
                                          description: 'Variable references $(VAR_NAME) are expanded

                                            using the previously defined environment variables in the container and

                                            any service environment variables. If a variable cannot be resolved,

                                            the reference in the input string will be unchanged. Double $$ are reduced

                                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                            "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                            Escaped references will never be expanded, regardless of whether the variable

                                            exists or not.

                                            Defaults to "".'
                                          type: string
                                        valueFrom:
                                          description: Source for the environment variable's value. Cannot be used if value is not empty.
                                          properties:
                                            configMapKeyRef:
                                              description: Selects a key of a ConfigMap.
                                              properties:
                                                key:
                                                  description: The key to select.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the ConfigMap or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            fieldRef:
                                              description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                                spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                              properties:
                                                apiVersion:
                                                  description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                                  type: string
                                                fieldPath:
                                                  description: Path of the field to select in the specified API version.
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            resourceFieldRef:
                                              description: 'Selects a resource of the container: only resources limits and requests

                                                (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                              properties:
                                                containerName:
                                                  description: 'Container name: required for volumes, optional for env vars'
                                                  type: string
                                                divisor:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  description: Specifies the output format of the exposed resources, defaults to "1"
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                resource:
                                                  description: 'Required: resource to select'
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            secretKeyRef:
                                              description: Selects a key of a secret in the pod's namespace
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - name
                                    x-kubernetes-list-type: map
                                  envFrom:
                                    description: 'List of sources to populate environment variables in the container.

                                      The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                                      will be reported as an event when the container is starting. When a key exists in multiple

                                      sources, the value associated with the last source will take precedence.

                                      Values defined by an Env with a duplicate key will take precedence.

                                      Cannot be updated.'
                                    items:
                                      description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                                      properties:
                                        configMapRef:
                                          description: The ConfigMap to select from
                                          properties:
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the ConfigMap must be defined
                                              type: boolean
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        prefix:
                                          description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                          type: string
                                        secretRef:
                                          description: The Secret to select from
                                          properties:
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret must be defined
                                              type: boolean
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  image:
                                    description: 'Container image name.

                                      More info: https://kubernetes.io/docs/concepts/containers/images

                                      This field is optional to allow higher level config management to default or override

                                      container images in workload controllers like Deployments and StatefulSets.'
                                    type: string
                                  imagePullPolicy:
                                    description: 'Image pull policy.

                                      One of Always, Never, IfNotPresent.

                                      Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                                      Cannot be updated.

                                      More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                                    type: string
                                  lifecycle:
                                    description: 'Actions that the management system should take in response to container lifecycle events.

                                      Cannot be updated.'
                                    properties:
                                      postStart:
                                        description: 'PostStart is called immediately after a container is created. If the handler fails,

                                          the container is terminated and restarted according to its restart policy.

                                          Other management of the container blocks until the hook completes.

                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: Exec specifies a command to execute in the container.
                                            properties:
                                              command:
                                                description: 'Command is the command line to execute inside the container, the working directory for the

                                                  command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                                  not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                                  a shell, you need to explicitly call out to that shell.

                                                  Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            type: object
                                          httpGet:
                                            description: HTTPGet specifies an HTTP GET request to perform.
                                            properties:
                                              host:
                                                description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                                  "Host" in httpHeaders instead.'
                                                type: string
                                              httpHeaders:
                                                description: Custom headers to set in the request. HTTP allows repeated headers.
                                                items:
                                                  description: HTTPHeader describes a custom header to be used in HTTP probes
                                                  properties:
                                                    name:
                                                      description: 'The header field name.

                                                        This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                      type: string
                                                    value:
                                                      description: The header field value
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              path:
                                                description: Path to access on the HTTP server.
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: 'Name or number of the port to access on the container.

                                                  Number must be in the range 1 to 65535.

                                                  Name must be an IANA_SVC_NAME.'
                                                x-kubernetes-int-or-string: true
                                              scheme:
                                                description: 'Scheme to use for connecting to the host.

                                                  Defaults to HTTP.'
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          sleep:
                                            description: Sleep represents a duration that the container should sleep.
                                            properties:
                                              seconds:
                                                description: Seconds is the number of seconds to sleep.
                                                format: int64
                                                type: integer
                                            required:
                                            - seconds
                                            type: object
                                          tcpSocket:
                                            description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                              for backward compatibility. There is no validation of this field and

                                              lifecycle hooks will fail at runtime when it is specified.'
                                            properties:
                                              host:
                                                description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: 'Number or name of the port to access on the container.

                                                  Number must be in the range 1 to 65535.

                                                  Name must be an IANA_SVC_NAME.'
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - port
                                            type: object
                                        type: object
                                      preStop:
                                        description: 'PreStop is called immediately before a container is terminated due to an

                                          API request or management event such as liveness/startup probe failure,

                                          preemption, resource contention, etc. The handler is not called if the

                                          container crashes or exits. The Pod''s termination grace period countdown begins before the

                                          PreStop hook is executed. Regardless of the outcome of the handler, the

                                          container will eventually terminate within the Pod''s termination grace

                                          period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                          or until the termination grace period is reached.

                                          More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                        properties:
                                          exec:
                                            description: Exec specifies a command to execute in the container.
                                            properties:
                                              command:
                                                description: 'Command is the command line to execute inside the container, the working directory for the

                                                  command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                                  not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                                  a shell, you need to explicitly call out to that shell.

                                                  Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            type: object
                                          httpGet:
                                            description: HTTPGet specifies an HTTP GET request to perform.
                                            properties:
                                              host:
                                                description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                                  "Host" in httpHeaders instead.'
                                                type: string
                                              httpHeaders:
                                                description: Custom headers to set in the request. HTTP allows repeated headers.
                                                items:
                                                  description: HTTPHeader describes a custom header to be used in HTTP probes
                                                  properties:
                                                    name:
                                                      description: 'The header field name.

                                                        This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                      type: string
                                                    value:
                                                      description: The header field value
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              path:
                                                description: Path to access on the HTTP server.
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: 'Name or number of the port to access on the container.

                                                  Number must be in the range 1 to 65535.

                                                  Name must be an IANA_SVC_NAME.'
                                                x-kubernetes-int-or-string: true
                                              scheme:
                                                description: 'Scheme to use for connecting to the host.

                                                  Defaults to HTTP.'
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          sleep:
                                            description: Sleep represents a duration that the container should sleep.
                                            properties:
                                              seconds:
                                                description: Seconds is the number of seconds to sleep.
                                                format: int64
                                                type: integer
                                            required:
                                            - seconds
                                            type: object
                                          tcpSocket:
                                            description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                              for backward compatibility. There is no validation of this field and

                                              lifecycle hooks will fail at runtime when it is specified.'
                                            properties:
                                              host:
                                                description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                                type: string
                                              port:
                                                anyOf:
                                                - type: integer
                                                - type: string
                                                description: 'Number or name of the port to access on the container.

                                                  Number must be in the range 1 to 65535.

                                                  Name must be an IANA_SVC_NAME.'
                                                x-kubernetes-int-or-string: true
                                            required:
                                            - port
                                            type: object
                                        type: object
                                      stopSignal:
                                        description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                          If not specified, the default is defined by the container runtime in use.

                                          StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                        type: string
                                    type: object
                                  livenessProbe:
                                    description: 'Periodic probe of container liveness.

                                      Container will be restarted if the probe fails.

                                      Cannot be updated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      failureThreshold:
                                        description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                          Defaults to 3. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      grpc:
                                        description: GRPC specifies a GRPC HealthCheckRequest.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            default: ''
                                            description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                              If this is not specified, the default behavior is defined by gRPC.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      initialDelaySeconds:
                                        description: 'Number of seconds after the container has started before liveness probes are initiated.

                                          More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        format: int32
                                        type: integer
                                      periodSeconds:
                                        description: 'How often (in seconds) to perform the probe.

                                          Default to 10 seconds. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      successThreshold:
                                        description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                          Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      tcpSocket:
                                        description: TCPSocket specifies a connection to a TCP port.
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                      terminationGracePeriodSeconds:
                                        description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                          The grace period is the duration in seconds after the processes running in the pod are sent

                                          a termination signal and the time when the processes are forcibly halted with a kill signal.

                                          Set this value longer than the expected cleanup time for your process.

                                          If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                          value overrides the value provided by the pod spec.

                                          Value must be non-negative integer. The value zero indicates stop immediately via

                                          the kill signal (no opportunity to shut down).

                                          This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                          Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                        format: int64
                                        type: integer
                                      timeoutSeconds:
                                        description: 'Number of seconds after which the probe times out.

                                          Defaults to 1 second. Minimum value is 1.

                                          More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        format: int32
                                        type: integer
                                    type: object
                                  name:
                                    description: 'Name of the container specified as a DNS_LABEL.

                                      Each container in a pod must have a unique name (DNS_LABEL).

                                      Cannot be updated.'
                                    type: string
                                  ports:
                                    description: 'List of ports to expose from the container. Not specifying a port here

                                      DOES NOT prevent that port from being exposed. Any port which is

                                      listening on the default "0.0.0.0" address inside a container will be

                                      accessible from the network.

                                      Modifying this array with strategic merge patch may corrupt the data.

                                      For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                                      Cannot be updated.'
                                    items:
                                      description: ContainerPort represents a network port in a single container.
                                      properties:
                                        containerPort:
                                          description: 'Number of port to expose on the pod''s IP address.

                                            This must be a valid port number, 0 < x < 65536.'
                                          format: int32
                                          type: integer
                                        hostIP:
                                          description: What host IP to bind the external port to.
                                          type: string
                                        hostPort:
                                          description: 'Number of port to expose on the host.

                                            If specified, this must be a valid port number, 0 < x < 65536.

                                            If HostNetwork is specified, this must match ContainerPort.

                                            Most containers do not need this.'
                                          format: int32
                                          type: integer
                                        name:
                                          description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                            named port in a pod must have a unique name. Name for the port that can be

                                            referred to by services.'
                                          type: string
                                        protocol:
                                          default: TCP
                                          description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                            Defaults to "TCP".'
                                          type: string
                                      required:
                                      - containerPort
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - containerPort
                                    - protocol
                                    x-kubernetes-list-type: map
                                  readinessProbe:
                                    description: 'Periodic probe of container service readiness.

                                      Container will be removed from service endpoints if the probe fails.

                                      Cannot be updated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      failureThreshold:
                                        description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                          Defaults to 3. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      grpc:
                                        description: GRPC specifies a GRPC HealthCheckRequest.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            default: ''
                                            description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                              If this is not specified, the default behavior is defined by gRPC.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      initialDelaySeconds:
                                        description: 'Number of seconds after the container has started before liveness probes are initiated.

                                          More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        format: int32
                                        type: integer
                                      periodSeconds:
                                        description: 'How often (in seconds) to perform the probe.

                                          Default to 10 seconds. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      successThreshold:
                                        description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                          Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      tcpSocket:
                                        description: TCPSocket specifies a connection to a TCP port.
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                      terminationGracePeriodSeconds:
                                        description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                          The grace period is the duration in seconds after the processes running in the pod are sent

                                          a termination signal and the time when the processes are forcibly halted with a kill signal.

                                          Set this value longer than the expected cleanup time for your process.

                                          If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                          value overrides the value provided by the pod spec.

                                          Value must be non-negative integer. The value zero indicates stop immediately via

                                          the kill signal (no opportunity to shut down).

                                          This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                          Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                        format: int64
                                        type: integer
                                      timeoutSeconds:
                                        description: 'Number of seconds after which the probe times out.

                                          Defaults to 1 second. Minimum value is 1.

                                          More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        format: int32
                                        type: integer
                                    type: object
                                  resizePolicy:
                                    description: Resources resize policy for the container.
                                    items:
                                      description: ContainerResizePolicy represents resource resize policy for the container.
                                      properties:
                                        resourceName:
                                          description: 'Name of the resource to which this resource resize policy applies.

                                            Supported values: cpu, memory.'
                                          type: string
                                        restartPolicy:
                                          description: 'Restart policy to apply when specified resource is resized.

                                            If not specified, it defaults to NotRequired.'
                                          type: string
                                      required:
                                      - resourceName
                                      - restartPolicy
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  resources:
                                    description: 'Compute Resources required by this container.

                                      Cannot be updated.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    properties:
                                      claims:
                                        description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                          that are used by this container.


                                          This is an alpha field and requires enabling the

                                          DynamicResourceAllocation feature gate.


                                          This field is immutable. It can only be set for containers.'
                                        items:
                                          description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                          properties:
                                            name:
                                              description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                                the Pod where this field is used. It makes that resource available

                                                inside a container.'
                                              type: string
                                            request:
                                              description: 'Request is the name chosen for a request in the referenced claim.

                                                If empty, everything from the claim is made available, otherwise

                                                only the result of this request.'
                                              type: string
                                          required:
                                          - name
                                          type: object
                                        type: array
                                        x-kubernetes-list-map-keys:
                                        - name
                                        x-kubernetes-list-type: map
                                      limits:
                                        additionalProperties:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        description: 'Limits describes the maximum amount of compute resources allowed.

                                          More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        type: object
                                      requests:
                                        additionalProperties:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        description: 'Requests describes the minimum amount of compute resources required.

                                          If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                          otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                          More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                        type: object
                                    type: object
                                  restartPolicy:
                                    description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                                      This field may only be set for init containers, and the only allowed value is "Always".

                                      For non-init containers or when this field is not specified,

                                      the restart behavior is defined by the Pod''s restart policy and the container type.

                                      Setting the RestartPolicy as "Always" for the init container will have the following effect:

                                      this init container will be continually restarted on

                                      exit until all regular containers have terminated. Once all regular

                                      containers have completed, all init containers with restartPolicy "Always"

                                      will be shut down. This lifecycle differs from normal init containers and

                                      is often referred to as a "sidecar" container. Although this init

                                      container still starts in the init container sequence, it does not wait

                                      for the container to complete before proceeding to the next init

                                      container. Instead, the next init container starts immediately after this

                                      init container is started, or after any startupProbe has successfully

                                      completed.'
                                    type: string
                                  securityContext:
                                    description: 'SecurityContext defines the security options the container should be run with.

                                      If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                                      More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                                    properties:
                                      allowPrivilegeEscalation:
                                        description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                          privileges than its parent process. This bool directly controls if

                                          the no_new_privs flag will be set on the container process.

                                          AllowPrivilegeEscalation is true always when the container is:

                                          1) run as Privileged

                                          2) has CAP_SYS_ADMIN

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        type: boolean
                                      appArmorProfile:
                                        description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                          overrides the pod''s appArmorProfile.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        properties:
                                          localhostProfile:
                                            description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                              The profile must be preconfigured on the node to work.

                                              Must match the loaded name of the profile.

                                              Must be set if and only if type is "Localhost".'
                                            type: string
                                          type:
                                            description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                            type: string
                                        required:
                                        - type
                                        type: object
                                      capabilities:
                                        description: 'The capabilities to add/drop when running containers.

                                          Defaults to the default set of capabilities granted by the container runtime.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        properties:
                                          add:
                                            description: Added capabilities
                                            items:
                                              description: Capability represent POSIX capabilities type
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          drop:
                                            description: Removed capabilities
                                            items:
                                              description: Capability represent POSIX capabilities type
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      privileged:
                                        description: 'Run container in privileged mode.

                                          Processes in privileged containers are essentially equivalent to root on the host.

                                          Defaults to false.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        type: boolean
                                      procMount:
                                        description: 'procMount denotes the type of proc mount to use for the containers.

                                          The default value is Default which uses the container runtime defaults for

                                          readonly paths and masked paths.

                                          This requires the ProcMountType feature flag to be enabled.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        type: string
                                      readOnlyRootFilesystem:
                                        description: 'Whether this container has a read-only root filesystem.

                                          Default is false.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        type: boolean
                                      runAsGroup:
                                        description: 'The GID to run the entrypoint of the container process.

                                          Uses runtime default if unset.

                                          May also be set in PodSecurityContext.  If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        format: int64
                                        type: integer
                                      runAsNonRoot:
                                        description: 'Indicates that the container must run as a non-root user.

                                          If true, the Kubelet will validate the image at runtime to ensure that it

                                          does not run as UID 0 (root) and fail to start the container if it does.

                                          If unset or false, no such validation will be performed.

                                          May also be set in PodSecurityContext.  If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                        type: boolean
                                      runAsUser:
                                        description: 'The UID to run the entrypoint of the container process.

                                          Defaults to user specified in image metadata if unspecified.

                                          May also be set in PodSecurityContext.  If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        format: int64
                                        type: integer
                                      seLinuxOptions:
                                        description: 'The SELinux context to be applied to the container.

                                          If unspecified, the container runtime will allocate a random SELinux context for each

                                          container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        properties:
                                          level:
                                            description: Level is SELinux level label that applies to the container.
                                            type: string
                                          role:
                                            description: Role is a SELinux role label that applies to the container.
                                            type: string
                                          type:
                                            description: Type is a SELinux type label that applies to the container.
                                            type: string
                                          user:
                                            description: User is a SELinux user label that applies to the container.
                                            type: string
                                        type: object
                                      seccompProfile:
                                        description: 'The seccomp options to use by this container. If seccomp options are

                                          provided at both the pod & container level, the container options

                                          override the pod options.

                                          Note that this field cannot be set when spec.os.name is windows.'
                                        properties:
                                          localhostProfile:
                                            description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                              The profile must be preconfigured on the node to work.

                                              Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                              Must be set if type is "Localhost". Must NOT be set for any other type.'
                                            type: string
                                          type:
                                            description: 'type indicates which kind of seccomp profile will be applied.

                                              Valid options are:


                                              Localhost - a profile defined in a file on the node should be used.

                                              RuntimeDefault - the container runtime default profile should be used.

                                              Unconfined - no profile should be applied.'
                                            type: string
                                        required:
                                        - type
                                        type: object
                                      windowsOptions:
                                        description: 'The Windows specific settings applied to all containers.

                                          If unspecified, the options from the PodSecurityContext will be used.

                                          If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                          Note that this field cannot be set when spec.os.name is linux.'
                                        properties:
                                          gmsaCredentialSpec:
                                            description: 'GMSACredentialSpec is where the GMSA admission webhook

                                              (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                              GMSA credential spec named by the GMSACredentialSpecName field.'
                                            type: string
                                          gmsaCredentialSpecName:
                                            description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                            type: string
                                          hostProcess:
                                            description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                              All of a Pod''s containers must have the same effective HostProcess value

                                              (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                              In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                            type: boolean
                                          runAsUserName:
                                            description: 'The UserName in Windows to run the entrypoint of the container process.

                                              Defaults to the user specified in image metadata if unspecified.

                                              May also be set in PodSecurityContext. If set in both SecurityContext and

                                              PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                            type: string
                                        type: object
                                    type: object
                                  startupProbe:
                                    description: 'StartupProbe indicates that the Pod has successfully initialized.

                                      If specified, no other probes are executed until this completes successfully.

                                      If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                                      This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                                      when it might take a long time to load data or warm a cache, than during steady-state operation.

                                      This cannot be updated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      failureThreshold:
                                        description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                          Defaults to 3. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      grpc:
                                        description: GRPC specifies a GRPC HealthCheckRequest.
                                        properties:
                                          port:
                                            description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                            format: int32
                                            type: integer
                                          service:
                                            default: ''
                                            description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                              (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                              If this is not specified, the default behavior is defined by gRPC.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      initialDelaySeconds:
                                        description: 'Number of seconds after the container has started before liveness probes are initiated.

                                          More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        format: int32
                                        type: integer
                                      periodSeconds:
                                        description: 'How often (in seconds) to perform the probe.

                                          Default to 10 seconds. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      successThreshold:
                                        description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                          Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                        format: int32
                                        type: integer
                                      tcpSocket:
                                        description: TCPSocket specifies a connection to a TCP port.
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                      terminationGracePeriodSeconds:
                                        description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                          The grace period is the duration in seconds after the processes running in the pod are sent

                                          a termination signal and the time when the processes are forcibly halted with a kill signal.

                                          Set this value longer than the expected cleanup time for your process.

                                          If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                          value overrides the value provided by the pod spec.

                                          Value must be non-negative integer. The value zero indicates stop immediately via

                                          the kill signal (no opportunity to shut down).

                                          This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                          Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                        format: int64
                                        type: integer
                                      timeoutSeconds:
                                        description: 'Number of seconds after which the probe times out.

                                          Defaults to 1 second. Minimum value is 1.

                                          More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                        format: int32
                                        type: integer
                                    type: object
                                  stdin:
                                    description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                                      is not set, reads from stdin in the container will always result in EOF.

                                      Default is false.'
                                    type: boolean
                                  stdinOnce:
                                    description: 'Whether the container runtime should close the stdin channel after it has been opened by

                                      a single attach. When stdin is true the stdin stream will remain open across multiple attach

                                      sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                                      first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                                      at which time stdin is closed and remains closed until the container is restarted. If this

                                      flag is false, a container processes that reads from stdin will never receive an EOF.

                                      Default is false'
                                    type: boolean
                                  terminationMessagePath:
                                    description: 'Optional: Path at which the file to which the container''s termination message

                                      will be written is mounted into the container''s filesystem.

                                      Message written is intended to be brief final status, such as an assertion failure message.

                                      Will be truncated by the node if greater than 4096 bytes. The total message length across

                                      all containers will be limited to 12kb.

                                      Defaults to /dev/termination-log.

                                      Cannot be updated.'
                                    type: string
                                  terminationMessagePolicy:
                                    description: 'Indicate how the termination message should be populated. File will use the contents of

                                      terminationMessagePath to populate the container status message on both success and failure.

                                      FallbackToLogsOnError will use the last chunk of container log output if the termination

                                      message file is empty and the container exited with an error.

                                      The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                                      Defaults to File.

                                      Cannot be updated.'
                                    type: string
                                  tty:
                                    description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                                      Default is false.'
                                    type: boolean
                                  volumeDevices:
                                    description: volumeDevices is the list of block devices to be used by the container.
                                    items:
                                      description: volumeDevice describes a mapping of a raw block device within a container.
                                      properties:
                                        devicePath:
                                          description: devicePath is the path inside of the container that the device will be mapped to.
                                          type: string
                                        name:
                                          description: name must match the name of a persistentVolumeClaim in the pod
                                          type: string
                                      required:
                                      - devicePath
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - devicePath
                                    x-kubernetes-list-type: map
                                  volumeMounts:
                                    description: 'Pod volumes to mount into the container''s filesystem.

                                      Cannot be updated.'
                                    items:
                                      description: VolumeMount describes a mounting of a Volume within a container.
                                      properties:
                                        mountPath:
                                          description: 'Path within the container at which the volume should be mounted.  Must

                                            not contain '':''.'
                                          type: string
                                        mountPropagation:
                                          description: 'mountPropagation determines how mounts are propagated from the host

                                            to container and the other way around.

                                            When not set, MountPropagationNone is used.

                                            This field is beta in 1.10.

                                            When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                            (which defaults to None).'
                                          type: string
                                        name:
                                          description: This must match the Name of a Volume.
                                          type: string
                                        readOnly:
                                          description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                            Defaults to false.'
                                          type: boolean
                                        recursiveReadOnly:
                                          description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                            recursively.


                                            If ReadOnly is false, this field has no meaning and must be unspecified.


                                            If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                            recursively read-only.  If this field is set to IfPossible, the mount is made

                                            recursively read-only, if it is supported by the container runtime.  If this

                                            field is set to Enabled, the mount is made recursively read-only if it is

                                            supported by the container runtime, otherwise the pod will not be started and

                                            an error will be generated to indicate the reason.


                                            If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                            None (or be unspecified, which defaults to None).


                                            If this field is not specified, it is treated as an equivalent of Disabled.'
                                          type: string
                                        subPath:
                                          description: 'Path within the volume from which the container''s volume should be mounted.

                                            Defaults to "" (volume''s root).'
                                          type: string
                                        subPathExpr:
                                          description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                            Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                            Defaults to "" (volume''s root).

                                            SubPathExpr and SubPath are mutually exclusive.'
                                          type: string
                                      required:
                                      - mountPath
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - mountPath
                                    x-kubernetes-list-type: map
                                  workingDir:
                                    description: 'Container''s working directory.

                                      If not specified, the container runtime''s default will be used, which

                                      might be configured in the container image.

                                      Cannot be updated.'
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                            retryStrategy:
                              description: 'RetryStrategy describes how to retry container nodes if the container set fails.

                                Note that this works differently from the template-level `retryStrategy` as it is a process-level retry that does not create new Pods or containers.'
                              properties:
                                duration:
                                  description: "Duration is the time between each retry, examples values are \"300ms\", \"1s\" or \"5m\".\nValid time units are \"ns\", \"us\" (or \"\xB5s\"), \"ms\", \"s\", \"m\", \"h\"."
                                  type: string
                                retries:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Retries is the maximum number of retry attempts for each container. It does not include the

                                    first, original attempt; the maximum number of total attempts will be `retries + 1`.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - retries
                              type: object
                            volumeMounts:
                              items:
                                description: VolumeMount describes a mounting of a Volume within a container.
                                properties:
                                  mountPath:
                                    description: 'Path within the container at which the volume should be mounted.  Must

                                      not contain '':''.'
                                    type: string
                                  mountPropagation:
                                    description: 'mountPropagation determines how mounts are propagated from the host

                                      to container and the other way around.

                                      When not set, MountPropagationNone is used.

                                      This field is beta in 1.10.

                                      When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                      (which defaults to None).'
                                    type: string
                                  name:
                                    description: This must match the Name of a Volume.
                                    type: string
                                  readOnly:
                                    description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                      Defaults to false.'
                                    type: boolean
                                  recursiveReadOnly:
                                    description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                      recursively.


                                      If ReadOnly is false, this field has no meaning and must be unspecified.


                                      If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                      recursively read-only.  If this field is set to IfPossible, the mount is made

                                      recursively read-only, if it is supported by the container runtime.  If this

                                      field is set to Enabled, the mount is made recursively read-only if it is

                                      supported by the container runtime, otherwise the pod will not be started and

                                      an error will be generated to indicate the reason.


                                      If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                      None (or be unspecified, which defaults to None).


                                      If this field is not specified, it is treated as an equivalent of Disabled.'
                                    type: string
                                  subPath:
                                    description: 'Path within the volume from which the container''s volume should be mounted.

                                      Defaults to "" (volume''s root).'
                                    type: string
                                  subPathExpr:
                                    description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                      Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                      Defaults to "" (volume''s root).

                                      SubPathExpr and SubPath are mutually exclusive.'
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                          required:
                          - containers
                          type: object
                        daemon:
                          description: Daemon will allow a workflow to proceed to the next step so long as the container reaches readiness
                          type: boolean
                        dag:
                          description: DAG template subtype which runs a DAG
                          properties:
                            failFast:
                              description: 'This flag is for DAG logic. The DAG logic has a built-in "fail fast" feature to stop scheduling new steps,

                                as soon as it detects that one of the DAG nodes is failed. Then it waits until all DAG nodes are completed

                                before failing the DAG itself.

                                The FailFast flag default is true,  if set to false, it will allow a DAG to run all branches of the DAG to

                                completion (either success or failure), regardless of the failed outcomes of branches in the DAG.

                                More info and example about this feature at https://github.com/argoproj/argo-workflows/issues/1442'
                              type: boolean
                            target:
                              description: Target are one or more names of targets to execute in a DAG
                              type: string
                            tasks:
                              description: 'Tasks are a list of DAG tasks

                                MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                              items:
                                description: 'DAGTask represents a node in the graph during DAG execution

                                  Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.'
                                properties:
                                  arguments:
                                    description: Arguments are the parameter and artifact arguments to the template
                                    properties:
                                      artifacts:
                                        description: Artifacts is the list of artifacts to pass to the template or workflow
                                        items:
                                          description: Artifact indicates an artifact to place at a specified path
                                          properties:
                                            archive:
                                              description: Archive controls how the artifact will be saved to the artifact repository.
                                              properties:
                                                none:
                                                  description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                    files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                    save/load the directory appropriately.'
                                                  type: object
                                                tar:
                                                  description: TarStrategy will tar and gzip the file or directory when saving
                                                  properties:
                                                    compressionLevel:
                                                      description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                        Defaults to gzip.DefaultCompression.'
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                zip:
                                                  description: ZipStrategy will unzip zipped input artifacts
                                                  type: object
                                              type: object
                                            archiveLogs:
                                              description: ArchiveLogs indicates if the container logs should be archived
                                              type: boolean
                                            artifactGC:
                                              description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                              properties:
                                                podMetadata:
                                                  description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                serviceAccountName:
                                                  description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                  type: string
                                                strategy:
                                                  description: Strategy is the strategy to use.
                                                  enum:
                                                  - ''
                                                  - OnWorkflowCompletion
                                                  - OnWorkflowDeletion
                                                  - Never
                                                  type: string
                                              type: object
                                            artifactory:
                                              description: Artifactory contains artifactory artifact location details
                                              properties:
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                url:
                                                  description: URL of the artifact
                                                  type: string
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - url
                                              type: object
                                            azure:
                                              description: Azure contains Azure Storage artifact location details
                                              properties:
                                                accountKeySecret:
                                                  description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                blob:
                                                  description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                  type: string
                                                container:
                                                  description: Container is the container where resources will be stored
                                                  type: string
                                                endpoint:
                                                  description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                  type: string
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              required:
                                              - blob
                                              - container
                                              - endpoint
                                              type: object
                                            deleted:
                                              description: Has this been deleted?
                                              type: boolean
                                            from:
                                              description: From allows an artifact to reference an artifact from a previous step
                                              type: string
                                            fromExpression:
                                              description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                              type: string
                                            gcs:
                                              description: GCS contains GCS artifact location details
                                              properties:
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                key:
                                                  description: Key is the path in the bucket where the artifact resides
                                                  type: string
                                                serviceAccountKeySecret:
                                                  description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - key
                                              type: object
                                            git:
                                              description: Git contains git artifact location details
                                              properties:
                                                branch:
                                                  description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                  type: string
                                                depth:
                                                  description: 'Depth specifies clones/fetches should be shallow and include the given

                                                    number of commits from the branch tip'
                                                  format: int64
                                                  type: integer
                                                disableSubmodules:
                                                  description: DisableSubmodules disables submodules during git clone
                                                  type: boolean
                                                fetch:
                                                  description: Fetch specifies a number of refs that should be fetched before checkout
                                                  items:
                                                    type: string
                                                  type: array
                                                insecureIgnoreHostKey:
                                                  description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                  type: boolean
                                                insecureSkipTLS:
                                                  description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                  type: boolean
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                repo:
                                                  description: Repo is the git repository
                                                  type: string
                                                revision:
                                                  description: Revision is the git commit, tag, branch to checkout
                                                  type: string
                                                singleBranch:
                                                  description: SingleBranch enables single branch clone, using the `branch` parameter
                                                  type: boolean
                                                sshPrivateKeySecret:
                                                  description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - repo
                                              type: object
                                            globalName:
                                              description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                              type: string
                                            hdfs:
                                              description: HDFS contains HDFS artifact location details
                                              properties:
                                                addresses:
                                                  description: Addresses is accessible addresses of HDFS name nodes
                                                  items:
                                                    type: string
                                                  type: array
                                                dataTransferProtection:
                                                  description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                    It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                  type: string
                                                force:
                                                  description: Force copies a file forcibly even if it exists
                                                  type: boolean
                                                hdfsUser:
                                                  description: 'HDFSUser is the user to access HDFS file system.

                                                    It is ignored if either ccache or keytab is used.'
                                                  type: string
                                                krbCCacheSecret:
                                                  description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                    Either ccache or keytab can be set to use Kerberos.'
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbConfigConfigMap:
                                                  description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                    It must be set if either ccache or keytab is used.'
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the ConfigMap or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbKeytabSecret:
                                                  description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                    Either ccache or keytab can be set to use Kerberos.'
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbRealm:
                                                  description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                    It must be set if keytab is used.'
                                                  type: string
                                                krbServicePrincipalName:
                                                  description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                    It must be set if either ccache or keytab is used.'
                                                  type: string
                                                krbUsername:
                                                  description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                    It must be set if keytab is used.'
                                                  type: string
                                                path:
                                                  description: Path is a file path in HDFS
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                            http:
                                              description: HTTP contains HTTP artifact location details
                                              properties:
                                                auth:
                                                  description: Auth contains information for client authentication
                                                  properties:
                                                    basicAuth:
                                                      description: BasicAuth describes the secret selectors required for basic authentication
                                                      properties:
                                                        passwordSecret:
                                                          description: PasswordSecret is the secret selector to the repository password
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        usernameSecret:
                                                          description: UsernameSecret is the secret selector to the repository username
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    clientCert:
                                                      description: ClientCertAuth holds necessary information for client authentication via certificates
                                                      properties:
                                                        clientCertSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientKeySecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    oauth2:
                                                      description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                      properties:
                                                        clientIDSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientSecretSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        endpointParams:
                                                          items:
                                                            description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                            properties:
                                                              key:
                                                                description: Name is the header name
                                                                type: string
                                                              value:
                                                                description: Value is the literal value to use for the header
                                                                type: string
                                                            required:
                                                            - key
                                                            type: object
                                                          type: array
                                                        scopes:
                                                          items:
                                                            type: string
                                                          type: array
                                                        tokenURLSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                  type: object
                                                headers:
                                                  description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                  items:
                                                    description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                    properties:
                                                      name:
                                                        description: Name is the header name
                                                        type: string
                                                      value:
                                                        description: Value is the literal value to use for the header
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                url:
                                                  description: URL of the artifact
                                                  type: string
                                              required:
                                              - url
                                              type: object
                                            mode:
                                              description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                Set when loading input artifacts. It is recommended to set the mode value

                                                to ensure the artifact has the expected permissions in your container.'
                                              format: int32
                                              maximum: 511
                                              minimum: 0
                                              type: integer
                                            name:
                                              description: name of the artifact. must be unique within a template's inputs/outputs.
                                              pattern: ^[-a-zA-Z0-9_{}.]+$
                                              type: string
                                            optional:
                                              description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                              type: boolean
                                            oss:
                                              description: OSS contains OSS artifact location details
                                              properties:
                                                accessKeySecret:
                                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                createBucketIfNotPresent:
                                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                  type: boolean
                                                endpoint:
                                                  description: Endpoint is the hostname of the bucket endpoint
                                                  type: string
                                                key:
                                                  description: Key is the path in the bucket where the artifact resides
                                                  type: string
                                                lifecycleRule:
                                                  description: LifecycleRule specifies how to manage bucket's lifecycle
                                                  properties:
                                                    markDeletionAfterDays:
                                                      description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                      format: int32
                                                      type: integer
                                                    markInfrequentAccessAfterDays:
                                                      description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                secretKeySecret:
                                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                securityToken:
                                                  description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                  type: string
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            path:
                                              description: Path is the container path to the artifact
                                              type: string
                                            plugin:
                                              description: Plugin contains plugin artifact location details
                                              properties:
                                                configuration:
                                                  description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                  type: string
                                                connectionTimeoutSeconds:
                                                  description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                  format: int32
                                                  type: integer
                                                key:
                                                  description: Key is the path in the artifact repository where the artifact resides
                                                  type: string
                                                name:
                                                  description: Name is the name of the artifact driver plugin
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            raw:
                                              description: Raw contains raw artifact location details
                                              properties:
                                                data:
                                                  description: Data is the string contents of the artifact
                                                  type: string
                                              required:
                                              - data
                                              type: object
                                            recurseMode:
                                              description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                              type: boolean
                                            s3:
                                              description: S3 contains S3 artifact location details
                                              properties:
                                                accessKeySecret:
                                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                caSecret:
                                                  description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                createBucketIfNotPresent:
                                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                  properties:
                                                    objectLocking:
                                                      description: ObjectLocking Enable object locking
                                                      type: boolean
                                                  type: object
                                                encryptionOptions:
                                                  description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                  properties:
                                                    enableEncryption:
                                                      description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                      type: boolean
                                                    kmsEncryptionContext:
                                                      description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                      type: string
                                                    kmsKeyId:
                                                      description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                      type: string
                                                    serverSideCustomerKeySecret:
                                                      description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                endpoint:
                                                  description: Endpoint is the hostname of the bucket endpoint
                                                  type: string
                                                insecure:
                                                  description: Insecure will connect to the service with TLS
                                                  type: boolean
                                                key:
                                                  description: Key is the key in the bucket where the artifact resides
                                                  type: string
                                                region:
                                                  description: Region contains the optional bucket region
                                                  type: string
                                                roleARN:
                                                  description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                  type: string
                                                secretKeySecret:
                                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                sessionTokenSecret:
                                                  description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              type: object
                                            subPath:
                                              description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                              type: string
                                          required:
                                          - name
                                          type: object
                                          x-kubernetes-validations:
                                          - message: at most one artifact location can be specified
                                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                        type: array
                                      parameters:
                                        description: Parameters is the list of parameters to pass to the template or workflow
                                        items:
                                          description: Parameter indicate a passed string parameter to a service template with an optional default value
                                          properties:
                                            default:
                                              description: Default is the default value to use for an input parameter if a value was not supplied
                                              type: string
                                            description:
                                              description: Description is the parameter description
                                              type: string
                                            enum:
                                              description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                              items:
                                                description: '* It''s JSON type is just string.

                                                  * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                  * It will marshall back to string - marshalling is not symmetric.'
                                                type: string
                                              minItems: 1
                                              type: array
                                            globalName:
                                              description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                              type: string
                                            name:
                                              description: Name is the parameter name
                                              pattern: ^[-a-zA-Z0-9_]+$
                                              type: string
                                            value:
                                              description: 'Value is the literal value to use for the parameter.

                                                If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                              type: string
                                            valueFrom:
                                              description: ValueFrom is the source for the output parameter's value
                                              properties:
                                                configMapKeyRef:
                                                  description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the ConfigMap or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                default:
                                                  description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                  type: string
                                                event:
                                                  description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                  type: string
                                                expression:
                                                  description: Expression, if defined, is evaluated to specify the value for the parameter
                                                  type: string
                                                jqFilter:
                                                  description: JQFilter expression against the resource object in resource templates
                                                  type: string
                                                jsonPath:
                                                  description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                  type: string
                                                parameter:
                                                  description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                    (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                  type: string
                                                path:
                                                  description: Path in the container to retrieve an output parameter value from in container templates
                                                  type: string
                                                supplied:
                                                  description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                  type: object
                                              type: object
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                                  continueOn:
                                    description: 'ContinueOn makes argo to proceed with the following step even if this step fails.

                                      Errors and Failed states can be specified'
                                    properties:
                                      error:
                                        type: boolean
                                      failed:
                                        type: boolean
                                    type: object
                                  dependencies:
                                    description: Dependencies are name of other targets which this depends on
                                    items:
                                      type: string
                                    type: array
                                  depends:
                                    description: Depends are name of other targets which this depends on
                                    type: string
                                  hooks:
                                    additionalProperties:
                                      properties:
                                        arguments:
                                          description: Arguments hold arguments to the template
                                          properties:
                                            artifacts:
                                              description: Artifacts is the list of artifacts to pass to the template or workflow
                                              items:
                                                description: Artifact indicates an artifact to place at a specified path
                                                properties:
                                                  archive:
                                                    description: Archive controls how the artifact will be saved to the artifact repository.
                                                    properties:
                                                      none:
                                                        description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                          files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                          save/load the directory appropriately.'
                                                        type: object
                                                      tar:
                                                        description: TarStrategy will tar and gzip the file or directory when saving
                                                        properties:
                                                          compressionLevel:
                                                            description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                              Defaults to gzip.DefaultCompression.'
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      zip:
                                                        description: ZipStrategy will unzip zipped input artifacts
                                                        type: object
                                                    type: object
                                                  archiveLogs:
                                                    description: ArchiveLogs indicates if the container logs should be archived
                                                    type: boolean
                                                  artifactGC:
                                                    description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                                    properties:
                                                      podMetadata:
                                                        description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                        properties:
                                                          annotations:
                                                            additionalProperties:
                                                              type: string
                                                            type: object
                                                          labels:
                                                            additionalProperties:
                                                              type: string
                                                            type: object
                                                        type: object
                                                      serviceAccountName:
                                                        description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                        type: string
                                                      strategy:
                                                        description: Strategy is the strategy to use.
                                                        enum:
                                                        - ''
                                                        - OnWorkflowCompletion
                                                        - OnWorkflowDeletion
                                                        - Never
                                                        type: string
                                                    type: object
                                                  artifactory:
                                                    description: Artifactory contains artifactory artifact location details
                                                    properties:
                                                      passwordSecret:
                                                        description: PasswordSecret is the secret selector to the repository password
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      url:
                                                        description: URL of the artifact
                                                        type: string
                                                      usernameSecret:
                                                        description: UsernameSecret is the secret selector to the repository username
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - url
                                                    type: object
                                                  azure:
                                                    description: Azure contains Azure Storage artifact location details
                                                    properties:
                                                      accountKeySecret:
                                                        description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      blob:
                                                        description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                        type: string
                                                      container:
                                                        description: Container is the container where resources will be stored
                                                        type: string
                                                      endpoint:
                                                        description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                        type: string
                                                      useSDKCreds:
                                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                        type: boolean
                                                    required:
                                                    - blob
                                                    - container
                                                    - endpoint
                                                    type: object
                                                  deleted:
                                                    description: Has this been deleted?
                                                    type: boolean
                                                  from:
                                                    description: From allows an artifact to reference an artifact from a previous step
                                                    type: string
                                                  fromExpression:
                                                    description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                                    type: string
                                                  gcs:
                                                    description: GCS contains GCS artifact location details
                                                    properties:
                                                      bucket:
                                                        description: Bucket is the name of the bucket
                                                        type: string
                                                      key:
                                                        description: Key is the path in the bucket where the artifact resides
                                                        type: string
                                                      serviceAccountKeySecret:
                                                        description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - key
                                                    type: object
                                                  git:
                                                    description: Git contains git artifact location details
                                                    properties:
                                                      branch:
                                                        description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                        type: string
                                                      depth:
                                                        description: 'Depth specifies clones/fetches should be shallow and include the given

                                                          number of commits from the branch tip'
                                                        format: int64
                                                        type: integer
                                                      disableSubmodules:
                                                        description: DisableSubmodules disables submodules during git clone
                                                        type: boolean
                                                      fetch:
                                                        description: Fetch specifies a number of refs that should be fetched before checkout
                                                        items:
                                                          type: string
                                                        type: array
                                                      insecureIgnoreHostKey:
                                                        description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                        type: boolean
                                                      insecureSkipTLS:
                                                        description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                        type: boolean
                                                      passwordSecret:
                                                        description: PasswordSecret is the secret selector to the repository password
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      repo:
                                                        description: Repo is the git repository
                                                        type: string
                                                      revision:
                                                        description: Revision is the git commit, tag, branch to checkout
                                                        type: string
                                                      singleBranch:
                                                        description: SingleBranch enables single branch clone, using the `branch` parameter
                                                        type: boolean
                                                      sshPrivateKeySecret:
                                                        description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      usernameSecret:
                                                        description: UsernameSecret is the secret selector to the repository username
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    required:
                                                    - repo
                                                    type: object
                                                  globalName:
                                                    description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                      ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                                    type: string
                                                  hdfs:
                                                    description: HDFS contains HDFS artifact location details
                                                    properties:
                                                      addresses:
                                                        description: Addresses is accessible addresses of HDFS name nodes
                                                        items:
                                                          type: string
                                                        type: array
                                                      dataTransferProtection:
                                                        description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                          It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                        type: string
                                                      force:
                                                        description: Force copies a file forcibly even if it exists
                                                        type: boolean
                                                      hdfsUser:
                                                        description: 'HDFSUser is the user to access HDFS file system.

                                                          It is ignored if either ccache or keytab is used.'
                                                        type: string
                                                      krbCCacheSecret:
                                                        description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                          Either ccache or keytab can be set to use Kerberos.'
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      krbConfigConfigMap:
                                                        description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                          It must be set if either ccache or keytab is used.'
                                                        properties:
                                                          key:
                                                            description: The key to select.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the ConfigMap or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      krbKeytabSecret:
                                                        description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                          Either ccache or keytab can be set to use Kerberos.'
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      krbRealm:
                                                        description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                          It must be set if keytab is used.'
                                                        type: string
                                                      krbServicePrincipalName:
                                                        description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                          It must be set if either ccache or keytab is used.'
                                                        type: string
                                                      krbUsername:
                                                        description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                          It must be set if keytab is used.'
                                                        type: string
                                                      path:
                                                        description: Path is a file path in HDFS
                                                        type: string
                                                    required:
                                                    - path
                                                    type: object
                                                  http:
                                                    description: HTTP contains HTTP artifact location details
                                                    properties:
                                                      auth:
                                                        description: Auth contains information for client authentication
                                                        properties:
                                                          basicAuth:
                                                            description: BasicAuth describes the secret selectors required for basic authentication
                                                            properties:
                                                              passwordSecret:
                                                                description: PasswordSecret is the secret selector to the repository password
                                                                properties:
                                                                  key:
                                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                                    type: string
                                                                  name:
                                                                    default: ''
                                                                    description: 'Name of the referent.

                                                                      This field is effectively required, but due to backwards compatibility is

                                                                      allowed to be empty. Instances of this type with an empty value here are

                                                                      almost certainly wrong.

                                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                    type: string
                                                                  optional:
                                                                    description: Specify whether the Secret or its key must be defined
                                                                    type: boolean
                                                                required:
                                                                - key
                                                                type: object
                                                                x-kubernetes-map-type: atomic
                                                              usernameSecret:
                                                                description: UsernameSecret is the secret selector to the repository username
                                                                properties:
                                                                  key:
                                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                                    type: string
                                                                  name:
                                                                    default: ''
                                                                    description: 'Name of the referent.

                                                                      This field is effectively required, but due to backwards compatibility is

                                                                      allowed to be empty. Instances of this type with an empty value here are

                                                                      almost certainly wrong.

                                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                    type: string
                                                                  optional:
                                                                    description: Specify whether the Secret or its key must be defined
                                                                    type: boolean
                                                                required:
                                                                - key
                                                                type: object
                                                                x-kubernetes-map-type: atomic
                                                            type: object
                                                          clientCert:
                                                            description: ClientCertAuth holds necessary information for client authentication via certificates
                                                            properties:
                                                              clientCertSecret:
                                                                description: SecretKeySelector selects a key of a Secret.
                                                                properties:
                                                                  key:
                                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                                    type: string
                                                                  name:
                                                                    default: ''
                                                                    description: 'Name of the referent.

                                                                      This field is effectively required, but due to backwards compatibility is

                                                                      allowed to be empty. Instances of this type with an empty value here are

                                                                      almost certainly wrong.

                                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                    type: string
                                                                  optional:
                                                                    description: Specify whether the Secret or its key must be defined
                                                                    type: boolean
                                                                required:
                                                                - key
                                                                type: object
                                                                x-kubernetes-map-type: atomic
                                                              clientKeySecret:
                                                                description: SecretKeySelector selects a key of a Secret.
                                                                properties:
                                                                  key:
                                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                                    type: string
                                                                  name:
                                                                    default: ''
                                                                    description: 'Name of the referent.

                                                                      This field is effectively required, but due to backwards compatibility is

                                                                      allowed to be empty. Instances of this type with an empty value here are

                                                                      almost certainly wrong.

                                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                    type: string
                                                                  optional:
                                                                    description: Specify whether the Secret or its key must be defined
                                                                    type: boolean
                                                                required:
                                                                - key
                                                                type: object
                                                                x-kubernetes-map-type: atomic
                                                            type: object
                                                          oauth2:
                                                            description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                            properties:
                                                              clientIDSecret:
                                                                description: SecretKeySelector selects a key of a Secret.
                                                                properties:
                                                                  key:
                                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                                    type: string
                                                                  name:
                                                                    default: ''
                                                                    description: 'Name of the referent.

                                                                      This field is effectively required, but due to backwards compatibility is

                                                                      allowed to be empty. Instances of this type with an empty value here are

                                                                      almost certainly wrong.

                                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                    type: string
                                                                  optional:
                                                                    description: Specify whether the Secret or its key must be defined
                                                                    type: boolean
                                                                required:
                                                                - key
                                                                type: object
                                                                x-kubernetes-map-type: atomic
                                                              clientSecretSecret:
                                                                description: SecretKeySelector selects a key of a Secret.
                                                                properties:
                                                                  key:
                                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                                    type: string
                                                                  name:
                                                                    default: ''
                                                                    description: 'Name of the referent.

                                                                      This field is effectively required, but due to backwards compatibility is

                                                                      allowed to be empty. Instances of this type with an empty value here are

                                                                      almost certainly wrong.

                                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                    type: string
                                                                  optional:
                                                                    description: Specify whether the Secret or its key must be defined
                                                                    type: boolean
                                                                required:
                                                                - key
                                                                type: object
                                                                x-kubernetes-map-type: atomic
                                                              endpointParams:
                                                                items:
                                                                  description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                                  properties:
                                                                    key:
                                                                      description: Name is the header name
                                                                      type: string
                                                                    value:
                                                                      description: Value is the literal value to use for the header
                                                                      type: string
                                                                  required:
                                                                  - key
                                                                  type: object
                                                                type: array
                                                              scopes:
                                                                items:
                                                                  type: string
                                                                type: array
                                                              tokenURLSecret:
                                                                description: SecretKeySelector selects a key of a Secret.
                                                                properties:
                                                                  key:
                                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                                    type: string
                                                                  name:
                                                                    default: ''
                                                                    description: 'Name of the referent.

                                                                      This field is effectively required, but due to backwards compatibility is

                                                                      allowed to be empty. Instances of this type with an empty value here are

                                                                      almost certainly wrong.

                                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                    type: string
                                                                  optional:
                                                                    description: Specify whether the Secret or its key must be defined
                                                                    type: boolean
                                                                required:
                                                                - key
                                                                type: object
                                                                x-kubernetes-map-type: atomic
                                                            type: object
                                                        type: object
                                                      headers:
                                                        description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                        items:
                                                          description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                          properties:
                                                            name:
                                                              description: Name is the header name
                                                              type: string
                                                            value:
                                                              description: Value is the literal value to use for the header
                                                              type: string
                                                          required:
                                                          - name
                                                          - value
                                                          type: object
                                                        type: array
                                                      url:
                                                        description: URL of the artifact
                                                        type: string
                                                    required:
                                                    - url
                                                    type: object
                                                  mode:
                                                    description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                      Set when loading input artifacts. It is recommended to set the mode value

                                                      to ensure the artifact has the expected permissions in your container.'
                                                    format: int32
                                                    maximum: 511
                                                    minimum: 0
                                                    type: integer
                                                  name:
                                                    description: name of the artifact. must be unique within a template's inputs/outputs.
                                                    pattern: ^[-a-zA-Z0-9_{}.]+$
                                                    type: string
                                                  optional:
                                                    description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                                    type: boolean
                                                  oss:
                                                    description: OSS contains OSS artifact location details
                                                    properties:
                                                      accessKeySecret:
                                                        description: AccessKeySecret is the secret selector to the bucket's access key
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      bucket:
                                                        description: Bucket is the name of the bucket
                                                        type: string
                                                      createBucketIfNotPresent:
                                                        description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                        type: boolean
                                                      endpoint:
                                                        description: Endpoint is the hostname of the bucket endpoint
                                                        type: string
                                                      key:
                                                        description: Key is the path in the bucket where the artifact resides
                                                        type: string
                                                      lifecycleRule:
                                                        description: LifecycleRule specifies how to manage bucket's lifecycle
                                                        properties:
                                                          markDeletionAfterDays:
                                                            description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                            format: int32
                                                            type: integer
                                                          markInfrequentAccessAfterDays:
                                                            description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                            format: int32
                                                            type: integer
                                                        type: object
                                                      secretKeySecret:
                                                        description: SecretKeySecret is the secret selector to the bucket's secret key
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      securityToken:
                                                        description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                        type: string
                                                      useSDKCreds:
                                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                  path:
                                                    description: Path is the container path to the artifact
                                                    type: string
                                                  plugin:
                                                    description: Plugin contains plugin artifact location details
                                                    properties:
                                                      configuration:
                                                        description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                        type: string
                                                      connectionTimeoutSeconds:
                                                        description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                        format: int32
                                                        type: integer
                                                      key:
                                                        description: Key is the path in the artifact repository where the artifact resides
                                                        type: string
                                                      name:
                                                        description: Name is the name of the artifact driver plugin
                                                        type: string
                                                    required:
                                                    - key
                                                    type: object
                                                  raw:
                                                    description: Raw contains raw artifact location details
                                                    properties:
                                                      data:
                                                        description: Data is the string contents of the artifact
                                                        type: string
                                                    required:
                                                    - data
                                                    type: object
                                                  recurseMode:
                                                    description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                                    type: boolean
                                                  s3:
                                                    description: S3 contains S3 artifact location details
                                                    properties:
                                                      accessKeySecret:
                                                        description: AccessKeySecret is the secret selector to the bucket's access key
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      bucket:
                                                        description: Bucket is the name of the bucket
                                                        type: string
                                                      caSecret:
                                                        description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      createBucketIfNotPresent:
                                                        description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                        properties:
                                                          objectLocking:
                                                            description: ObjectLocking Enable object locking
                                                            type: boolean
                                                        type: object
                                                      encryptionOptions:
                                                        description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                        properties:
                                                          enableEncryption:
                                                            description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                            type: boolean
                                                          kmsEncryptionContext:
                                                            description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                            type: string
                                                          kmsKeyId:
                                                            description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                            type: string
                                                          serverSideCustomerKeySecret:
                                                            description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      endpoint:
                                                        description: Endpoint is the hostname of the bucket endpoint
                                                        type: string
                                                      insecure:
                                                        description: Insecure will connect to the service with TLS
                                                        type: boolean
                                                      key:
                                                        description: Key is the key in the bucket where the artifact resides
                                                        type: string
                                                      region:
                                                        description: Region contains the optional bucket region
                                                        type: string
                                                      roleARN:
                                                        description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                        type: string
                                                      secretKeySecret:
                                                        description: SecretKeySecret is the secret selector to the bucket's secret key
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      sessionTokenSecret:
                                                        description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      useSDKCreds:
                                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                        type: boolean
                                                    type: object
                                                  subPath:
                                                    description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                                    type: string
                                                required:
                                                - name
                                                type: object
                                                x-kubernetes-validations:
                                                - message: at most one artifact location can be specified
                                                  rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                              type: array
                                            parameters:
                                              description: Parameters is the list of parameters to pass to the template or workflow
                                              items:
                                                description: Parameter indicate a passed string parameter to a service template with an optional default value
                                                properties:
                                                  default:
                                                    description: Default is the default value to use for an input parameter if a value was not supplied
                                                    type: string
                                                  description:
                                                    description: Description is the parameter description
                                                    type: string
                                                  enum:
                                                    description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                                    items:
                                                      description: '* It''s JSON type is just string.

                                                        * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                        * It will marshall back to string - marshalling is not symmetric.'
                                                      type: string
                                                    minItems: 1
                                                    type: array
                                                  globalName:
                                                    description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                      ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                                    type: string
                                                  name:
                                                    description: Name is the parameter name
                                                    pattern: ^[-a-zA-Z0-9_]+$
                                                    type: string
                                                  value:
                                                    description: 'Value is the literal value to use for the parameter.

                                                      If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                                    type: string
                                                  valueFrom:
                                                    description: ValueFrom is the source for the output parameter's value
                                                    properties:
                                                      configMapKeyRef:
                                                        description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                        properties:
                                                          key:
                                                            description: The key to select.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the ConfigMap or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      default:
                                                        description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                        type: string
                                                      event:
                                                        description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                        type: string
                                                      expression:
                                                        description: Expression, if defined, is evaluated to specify the value for the parameter
                                                        type: string
                                                      jqFilter:
                                                        description: JQFilter expression against the resource object in resource templates
                                                        type: string
                                                      jsonPath:
                                                        description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                        type: string
                                                      parameter:
                                                        description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                          (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                        type: string
                                                      path:
                                                        description: Path in the container to retrieve an output parameter value from in container templates
                                                        type: string
                                                      supplied:
                                                        description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                        type: object
                                                    type: object
                                                required:
                                                - name
                                                type: object
                                              type: array
                                          type: object
                                        expression:
                                          description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                            be retried and the retry strategy will be ignored'
                                          type: string
                                        template:
                                          description: Template is the name of the template to execute by the hook
                                          type: string
                                        templateRef:
                                          description: TemplateRef is the reference to the template resource to execute by the hook
                                          properties:
                                            clusterScope:
                                              description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                              type: boolean
                                            name:
                                              description: Name is the resource name of the template.
                                              type: string
                                            template:
                                              description: Template is the name of referred template in the resource.
                                              type: string
                                          type: object
                                      type: object
                                    description: 'Hooks hold the lifecycle hook which is invoked at lifecycle of

                                      task, irrespective of the success, failure, or error status of the primary task'
                                    type: object
                                  inline:
                                    description: 'Inline is the template. Template must be empty if this is declared (and vice-versa).

                                      Note: As mentioned in the corresponding definition in WorkflowStep, this struct is defined recursively,

                                      so we need "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                    x-kubernetes-preserve-unknown-fields: true
                                  name:
                                    description: Name is the name of the target
                                    maxLength: 128
                                    pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                    type: string
                                  onExit:
                                    description: 'OnExit is a template reference which is invoked at the end of the

                                      template, irrespective of the success, failure, or error of the

                                      primary template.

                                      DEPRECATED: Use Hooks[exit].Template instead.'
                                    type: string
                                  template:
                                    description: Name of template to execute
                                    type: string
                                  templateRef:
                                    description: TemplateRef is the reference to the template resource to execute.
                                    properties:
                                      clusterScope:
                                        description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                        type: boolean
                                      name:
                                        description: Name is the resource name of the template.
                                        type: string
                                      template:
                                        description: Template is the name of referred template in the resource.
                                        type: string
                                    type: object
                                  when:
                                    description: When is an expression in which the task should conditionally execute
                                    type: string
                                  withItems:
                                    description: 'WithItems expands a task into multiple parallel tasks from the items in the list

                                      Note: The structure of WithItems is free-form, so we need

                                      "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                    x-kubernetes-preserve-unknown-fields: true
                                  withParam:
                                    description: 'WithParam expands a task into multiple parallel tasks from the value in the parameter,

                                      which is expected to be a JSON list.'
                                    type: string
                                  withSequence:
                                    description: WithSequence expands a task into a numeric sequence
                                    properties:
                                      count:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Count is number of elements in the sequence (default: 0). Not to be used with end'
                                        x-kubernetes-int-or-string: true
                                      end:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number at which to end the sequence (default: 0). Not to be used with Count'
                                        x-kubernetes-int-or-string: true
                                      format:
                                        description: Format is a printf format string to format the value in the sequence
                                        type: string
                                      start:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number at which to start the sequence (default: 0)'
                                        x-kubernetes-int-or-string: true
                                    type: object
                                    x-kubernetes-validations:
                                    - message: only one of count or end can be defined
                                      rule: '!(has(self.count) && has(self.end))'
                                required:
                                - name
                                type: object
                                x-kubernetes-validations:
                                - message: cannot use both 'depends' and 'dependencies'
                                  rule: '!has(self.depends) || !has(self.dependencies)'
                                - message: cannot use 'continueOn' when using 'depends'
                                  rule: '!has(self.depends) || !has(self.continueOn)'
                                - message: task name cannot begin with a digit when using 'depends' or 'dependencies'
                                  rule: '!(has(self.depends) || has(self.dependencies)) || !self.name.matches(''^[0-9]'')'
                              maxItems: 200
                              minItems: 1
                              type: array
                          required:
                          - tasks
                          type: object
                        data:
                          description: Data is a data template
                          properties:
                            source:
                              description: Source sources external data into a data template
                              properties:
                                artifactPaths:
                                  description: ArtifactPaths is a data transformation that collects a list of artifact paths
                                  properties:
                                    archive:
                                      description: Archive controls how the artifact will be saved to the artifact repository.
                                      properties:
                                        none:
                                          description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                            files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                            save/load the directory appropriately.'
                                          type: object
                                        tar:
                                          description: TarStrategy will tar and gzip the file or directory when saving
                                          properties:
                                            compressionLevel:
                                              description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                Defaults to gzip.DefaultCompression.'
                                              format: int32
                                              type: integer
                                          type: object
                                        zip:
                                          description: ZipStrategy will unzip zipped input artifacts
                                          type: object
                                      type: object
                                    archiveLogs:
                                      description: ArchiveLogs indicates if the container logs should be archived
                                      type: boolean
                                    artifactGC:
                                      description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                      properties:
                                        podMetadata:
                                          description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        serviceAccountName:
                                          description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                          type: string
                                        strategy:
                                          description: Strategy is the strategy to use.
                                          enum:
                                          - ''
                                          - OnWorkflowCompletion
                                          - OnWorkflowDeletion
                                          - Never
                                          type: string
                                      type: object
                                    artifactory:
                                      description: Artifactory contains artifactory artifact location details
                                      properties:
                                        passwordSecret:
                                          description: PasswordSecret is the secret selector to the repository password
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        url:
                                          description: URL of the artifact
                                          type: string
                                        usernameSecret:
                                          description: UsernameSecret is the secret selector to the repository username
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - url
                                      type: object
                                    azure:
                                      description: Azure contains Azure Storage artifact location details
                                      properties:
                                        accountKeySecret:
                                          description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        blob:
                                          description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                          type: string
                                        container:
                                          description: Container is the container where resources will be stored
                                          type: string
                                        endpoint:
                                          description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                          type: string
                                        useSDKCreds:
                                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                          type: boolean
                                      required:
                                      - blob
                                      - container
                                      - endpoint
                                      type: object
                                    deleted:
                                      description: Has this been deleted?
                                      type: boolean
                                    from:
                                      description: From allows an artifact to reference an artifact from a previous step
                                      type: string
                                    fromExpression:
                                      description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                      type: string
                                    gcs:
                                      description: GCS contains GCS artifact location details
                                      properties:
                                        bucket:
                                          description: Bucket is the name of the bucket
                                          type: string
                                        key:
                                          description: Key is the path in the bucket where the artifact resides
                                          type: string
                                        serviceAccountKeySecret:
                                          description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - key
                                      type: object
                                    git:
                                      description: Git contains git artifact location details
                                      properties:
                                        branch:
                                          description: Branch is the branch to fetch when `SingleBranch` is enabled
                                          type: string
                                        depth:
                                          description: 'Depth specifies clones/fetches should be shallow and include the given

                                            number of commits from the branch tip'
                                          format: int64
                                          type: integer
                                        disableSubmodules:
                                          description: DisableSubmodules disables submodules during git clone
                                          type: boolean
                                        fetch:
                                          description: Fetch specifies a number of refs that should be fetched before checkout
                                          items:
                                            type: string
                                          type: array
                                        insecureIgnoreHostKey:
                                          description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                          type: boolean
                                        insecureSkipTLS:
                                          description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                          type: boolean
                                        passwordSecret:
                                          description: PasswordSecret is the secret selector to the repository password
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        repo:
                                          description: Repo is the git repository
                                          type: string
                                        revision:
                                          description: Revision is the git commit, tag, branch to checkout
                                          type: string
                                        singleBranch:
                                          description: SingleBranch enables single branch clone, using the `branch` parameter
                                          type: boolean
                                        sshPrivateKeySecret:
                                          description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          description: UsernameSecret is the secret selector to the repository username
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - repo
                                      type: object
                                    globalName:
                                      description: 'GlobalName exports an output artifact to the global scope, making it available as

                                        ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                      type: string
                                    hdfs:
                                      description: HDFS contains HDFS artifact location details
                                      properties:
                                        addresses:
                                          description: Addresses is accessible addresses of HDFS name nodes
                                          items:
                                            type: string
                                          type: array
                                        dataTransferProtection:
                                          description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                            It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                          type: string
                                        force:
                                          description: Force copies a file forcibly even if it exists
                                          type: boolean
                                        hdfsUser:
                                          description: 'HDFSUser is the user to access HDFS file system.

                                            It is ignored if either ccache or keytab is used.'
                                          type: string
                                        krbCCacheSecret:
                                          description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                            Either ccache or keytab can be set to use Kerberos.'
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbConfigConfigMap:
                                          description: 'KrbConfig is the configmap selector for Kerberos config as string

                                            It must be set if either ccache or keytab is used.'
                                          properties:
                                            key:
                                              description: The key to select.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the ConfigMap or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbKeytabSecret:
                                          description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                            Either ccache or keytab can be set to use Kerberos.'
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbRealm:
                                          description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                            It must be set if keytab is used.'
                                          type: string
                                        krbServicePrincipalName:
                                          description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                            It must be set if either ccache or keytab is used.'
                                          type: string
                                        krbUsername:
                                          description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                            It must be set if keytab is used.'
                                          type: string
                                        path:
                                          description: Path is a file path in HDFS
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    http:
                                      description: HTTP contains HTTP artifact location details
                                      properties:
                                        auth:
                                          description: Auth contains information for client authentication
                                          properties:
                                            basicAuth:
                                              description: BasicAuth describes the secret selectors required for basic authentication
                                              properties:
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            clientCert:
                                              description: ClientCertAuth holds necessary information for client authentication via certificates
                                              properties:
                                                clientCertSecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientKeySecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            oauth2:
                                              description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                              properties:
                                                clientIDSecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientSecretSecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                endpointParams:
                                                  items:
                                                    description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                    properties:
                                                      key:
                                                        description: Name is the header name
                                                        type: string
                                                      value:
                                                        description: Value is the literal value to use for the header
                                                        type: string
                                                    required:
                                                    - key
                                                    type: object
                                                  type: array
                                                scopes:
                                                  items:
                                                    type: string
                                                  type: array
                                                tokenURLSecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                          type: object
                                        headers:
                                          description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                          items:
                                            description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                            properties:
                                              name:
                                                description: Name is the header name
                                                type: string
                                              value:
                                                description: Value is the literal value to use for the header
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        url:
                                          description: URL of the artifact
                                          type: string
                                      required:
                                      - url
                                      type: object
                                    mode:
                                      description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                        Set when loading input artifacts. It is recommended to set the mode value

                                        to ensure the artifact has the expected permissions in your container.'
                                      format: int32
                                      maximum: 511
                                      minimum: 0
                                      type: integer
                                    name:
                                      description: name of the artifact. must be unique within a template's inputs/outputs.
                                      pattern: ^[-a-zA-Z0-9_{}.]+$
                                      type: string
                                    optional:
                                      description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                      type: boolean
                                    oss:
                                      description: OSS contains OSS artifact location details
                                      properties:
                                        accessKeySecret:
                                          description: AccessKeySecret is the secret selector to the bucket's access key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          description: Bucket is the name of the bucket
                                          type: string
                                        createBucketIfNotPresent:
                                          description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                          type: boolean
                                        endpoint:
                                          description: Endpoint is the hostname of the bucket endpoint
                                          type: string
                                        key:
                                          description: Key is the path in the bucket where the artifact resides
                                          type: string
                                        lifecycleRule:
                                          description: LifecycleRule specifies how to manage bucket's lifecycle
                                          properties:
                                            markDeletionAfterDays:
                                              description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                              format: int32
                                              type: integer
                                            markInfrequentAccessAfterDays:
                                              description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                              format: int32
                                              type: integer
                                          type: object
                                        secretKeySecret:
                                          description: SecretKeySecret is the secret selector to the bucket's secret key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        securityToken:
                                          description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                          type: string
                                        useSDKCreds:
                                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    path:
                                      description: Path is the container path to the artifact
                                      type: string
                                    plugin:
                                      description: Plugin contains plugin artifact location details
                                      properties:
                                        configuration:
                                          description: Configuration is the plugin defined configuration for the artifact driver plugin
                                          type: string
                                        connectionTimeoutSeconds:
                                          description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                          format: int32
                                          type: integer
                                        key:
                                          description: Key is the path in the artifact repository where the artifact resides
                                          type: string
                                        name:
                                          description: Name is the name of the artifact driver plugin
                                          type: string
                                      required:
                                      - key
                                      type: object
                                    raw:
                                      description: Raw contains raw artifact location details
                                      properties:
                                        data:
                                          description: Data is the string contents of the artifact
                                          type: string
                                      required:
                                      - data
                                      type: object
                                    recurseMode:
                                      description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                      type: boolean
                                    s3:
                                      description: S3 contains S3 artifact location details
                                      properties:
                                        accessKeySecret:
                                          description: AccessKeySecret is the secret selector to the bucket's access key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          description: Bucket is the name of the bucket
                                          type: string
                                        caSecret:
                                          description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        createBucketIfNotPresent:
                                          description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                          properties:
                                            objectLocking:
                                              description: ObjectLocking Enable object locking
                                              type: boolean
                                          type: object
                                        encryptionOptions:
                                          description: S3EncryptionOptions used to determine encryption options during s3 operations
                                          properties:
                                            enableEncryption:
                                              description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                              type: boolean
                                            kmsEncryptionContext:
                                              description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                              type: string
                                            kmsKeyId:
                                              description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                              type: string
                                            serverSideCustomerKeySecret:
                                              description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        endpoint:
                                          description: Endpoint is the hostname of the bucket endpoint
                                          type: string
                                        insecure:
                                          description: Insecure will connect to the service with TLS
                                          type: boolean
                                        key:
                                          description: Key is the key in the bucket where the artifact resides
                                          type: string
                                        region:
                                          description: Region contains the optional bucket region
                                          type: string
                                        roleARN:
                                          description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                          type: string
                                        secretKeySecret:
                                          description: SecretKeySecret is the secret selector to the bucket's secret key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        sessionTokenSecret:
                                          description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        useSDKCreds:
                                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                          type: boolean
                                      type: object
                                    subPath:
                                      description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                      type: string
                                  required:
                                  - name
                                  type: object
                                  x-kubernetes-validations:
                                  - message: at most one artifact location can be specified
                                    rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                              type: object
                            transformation:
                              description: Transformation applies a set of transformations
                              items:
                                properties:
                                  expression:
                                    description: Expression defines an expr expression to apply
                                    type: string
                                required:
                                - expression
                                type: object
                              type: array
                          required:
                          - source
                          - transformation
                          type: object
                        executor:
                          description: Executor holds configurations of the executor container.
                          properties:
                            serviceAccountName:
                              description: ServiceAccountName specifies the service account name of the executor container.
                              type: string
                          type: object
                        failFast:
                          description: 'FailFast, if specified, will fail this template if any of its child pods has failed. This is useful for when this

                            template is expanded with `withItems`, etc.'
                          type: boolean
                        hostAliases:
                          description: HostAliases is an optional list of hosts and IPs that will be injected into the pod spec
                          items:
                            description: 'HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the

                              pod''s hosts file.'
                            properties:
                              hostnames:
                                description: Hostnames for the above IP address.
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              ip:
                                description: IP address of the host file entry.
                                type: string
                            required:
                            - ip
                            type: object
                          type: array
                        http:
                          description: HTTP makes a HTTP request
                          properties:
                            body:
                              description: Body is content of the HTTP Request
                              type: string
                            bodyFrom:
                              description: BodyFrom is  content of the HTTP Request as Bytes
                              properties:
                                bytes:
                                  format: byte
                                  type: string
                              type: object
                            headers:
                              description: Headers are an optional list of headers to send with HTTP requests
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      secretKeyRef:
                                        description: SecretKeySelector selects a key of a Secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            insecureSkipVerify:
                              description: InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client
                              type: boolean
                            method:
                              description: Method is HTTP methods for HTTP Request
                              type: string
                            successCondition:
                              description: SuccessCondition is an expression if evaluated to true is considered successful
                              type: string
                            timeoutSeconds:
                              description: TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds
                              format: int64
                              type: integer
                            url:
                              description: URL of the HTTP Request
                              type: string
                          required:
                          - url
                          type: object
                        initContainers:
                          description: InitContainers is a list of containers which run before the main container.
                          items:
                            description: UserContainer is a container specified by a user.
                            properties:
                              args:
                                description: 'Arguments to the entrypoint.

                                  The container image''s CMD is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              command:
                                description: 'Entrypoint array. Not executed within a shell.

                                  The container image''s ENTRYPOINT is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              env:
                                description: 'List of environment variables to set in the container.

                                  Cannot be updated.'
                                items:
                                  description: EnvVar represents an environment variable present in a Container.
                                  properties:
                                    name:
                                      description: Name of the environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    value:
                                      description: 'Variable references $(VAR_NAME) are expanded

                                        using the previously defined environment variables in the container and

                                        any service environment variables. If a variable cannot be resolved,

                                        the reference in the input string will be unchanged. Double $$ are reduced

                                        to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                        "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                        Escaped references will never be expanded, regardless of whether the variable

                                        exists or not.

                                        Defaults to "".'
                                      type: string
                                    valueFrom:
                                      description: Source for the environment variable's value. Cannot be used if value is not empty.
                                      properties:
                                        configMapKeyRef:
                                          description: Selects a key of a ConfigMap.
                                          properties:
                                            key:
                                              description: The key to select.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the ConfigMap or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        fieldRef:
                                          description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                            spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        secretKeyRef:
                                          description: Selects a key of a secret in the pod's namespace
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              envFrom:
                                description: 'List of sources to populate environment variables in the container.

                                  The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                                  will be reported as an event when the container is starting. When a key exists in multiple

                                  sources, the value associated with the last source will take precedence.

                                  Values defined by an Env with a duplicate key will take precedence.

                                  Cannot be updated.'
                                items:
                                  description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                                  properties:
                                    configMapRef:
                                      description: The ConfigMap to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    prefix:
                                      description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    secretRef:
                                      description: The Secret to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              image:
                                description: 'Container image name.

                                  More info: https://kubernetes.io/docs/concepts/containers/images

                                  This field is optional to allow higher level config management to default or override

                                  container images in workload controllers like Deployments and StatefulSets.'
                                type: string
                              imagePullPolicy:
                                description: 'Image pull policy.

                                  One of Always, Never, IfNotPresent.

                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                                type: string
                              lifecycle:
                                description: 'Actions that the management system should take in response to container lifecycle events.

                                  Cannot be updated.'
                                properties:
                                  postStart:
                                    description: 'PostStart is called immediately after a container is created. If the handler fails,

                                      the container is terminated and restarted according to its restart policy.

                                      Other management of the container blocks until the hook completes.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  preStop:
                                    description: 'PreStop is called immediately before a container is terminated due to an

                                      API request or management event such as liveness/startup probe failure,

                                      preemption, resource contention, etc. The handler is not called if the

                                      container crashes or exits. The Pod''s termination grace period countdown begins before the

                                      PreStop hook is executed. Regardless of the outcome of the handler, the

                                      container will eventually terminate within the Pod''s termination grace

                                      period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                      or until the termination grace period is reached.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  stopSignal:
                                    description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                      If not specified, the default is defined by the container runtime in use.

                                      StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                    type: string
                                type: object
                              livenessProbe:
                                description: 'Periodic probe of container liveness.

                                  Container will be restarted if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              mirrorVolumeMounts:
                                description: 'MirrorVolumeMounts will mount the same volumes specified in the main container

                                  to the container (including artifacts), at the same mountPaths. This enables

                                  dind daemon to partially see the same filesystem as the main container in

                                  order to use features such as docker volume binding'
                                type: boolean
                              name:
                                description: 'Name of the container specified as a DNS_LABEL.

                                  Each container in a pod must have a unique name (DNS_LABEL).

                                  Cannot be updated.'
                                type: string
                              ports:
                                description: 'List of ports to expose from the container. Not specifying a port here

                                  DOES NOT prevent that port from being exposed. Any port which is

                                  listening on the default "0.0.0.0" address inside a container will be

                                  accessible from the network.

                                  Modifying this array with strategic merge patch may corrupt the data.

                                  For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                                  Cannot be updated.'
                                items:
                                  description: ContainerPort represents a network port in a single container.
                                  properties:
                                    containerPort:
                                      description: 'Number of port to expose on the pod''s IP address.

                                        This must be a valid port number, 0 < x < 65536.'
                                      format: int32
                                      type: integer
                                    hostIP:
                                      description: What host IP to bind the external port to.
                                      type: string
                                    hostPort:
                                      description: 'Number of port to expose on the host.

                                        If specified, this must be a valid port number, 0 < x < 65536.

                                        If HostNetwork is specified, this must match ContainerPort.

                                        Most containers do not need this.'
                                      format: int32
                                      type: integer
                                    name:
                                      description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                        named port in a pod must have a unique name. Name for the port that can be

                                        referred to by services.'
                                      type: string
                                    protocol:
                                      default: TCP
                                      description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                        Defaults to "TCP".'
                                      type: string
                                  required:
                                  - containerPort
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - containerPort
                                - protocol
                                x-kubernetes-list-type: map
                              readinessProbe:
                                description: 'Periodic probe of container service readiness.

                                  Container will be removed from service endpoints if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              resizePolicy:
                                description: Resources resize policy for the container.
                                items:
                                  description: ContainerResizePolicy represents resource resize policy for the container.
                                  properties:
                                    resourceName:
                                      description: 'Name of the resource to which this resource resize policy applies.

                                        Supported values: cpu, memory.'
                                      type: string
                                    restartPolicy:
                                      description: 'Restart policy to apply when specified resource is resized.

                                        If not specified, it defaults to NotRequired.'
                                      type: string
                                  required:
                                  - resourceName
                                  - restartPolicy
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              resources:
                                description: 'Compute Resources required by this container.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                properties:
                                  claims:
                                    description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                      that are used by this container.


                                      This is an alpha field and requires enabling the

                                      DynamicResourceAllocation feature gate.


                                      This field is immutable. It can only be set for containers.'
                                    items:
                                      description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                      properties:
                                        name:
                                          description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                            the Pod where this field is used. It makes that resource available

                                            inside a container.'
                                          type: string
                                        request:
                                          description: 'Request is the name chosen for a request in the referenced claim.

                                            If empty, everything from the claim is made available, otherwise

                                            only the result of this request.'
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - name
                                    x-kubernetes-list-type: map
                                  limits:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Limits describes the maximum amount of compute resources allowed.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                  requests:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Requests describes the minimum amount of compute resources required.

                                      If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                      otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                type: object
                              restartPolicy:
                                description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                                  This field may only be set for init containers, and the only allowed value is "Always".

                                  For non-init containers or when this field is not specified,

                                  the restart behavior is defined by the Pod''s restart policy and the container type.

                                  Setting the RestartPolicy as "Always" for the init container will have the following effect:

                                  this init container will be continually restarted on

                                  exit until all regular containers have terminated. Once all regular

                                  containers have completed, all init containers with restartPolicy "Always"

                                  will be shut down. This lifecycle differs from normal init containers and

                                  is often referred to as a "sidecar" container. Although this init

                                  container still starts in the init container sequence, it does not wait

                                  for the container to complete before proceeding to the next init

                                  container. Instead, the next init container starts immediately after this

                                  init container is started, or after any startupProbe has successfully

                                  completed.'
                                type: string
                              securityContext:
                                description: 'SecurityContext defines the security options the container should be run with.

                                  If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                                  More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                                properties:
                                  allowPrivilegeEscalation:
                                    description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                      privileges than its parent process. This bool directly controls if

                                      the no_new_privs flag will be set on the container process.

                                      AllowPrivilegeEscalation is true always when the container is:

                                      1) run as Privileged

                                      2) has CAP_SYS_ADMIN

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  appArmorProfile:
                                    description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                      overrides the pod''s appArmorProfile.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must match the loaded name of the profile.

                                          Must be set if and only if type is "Localhost".'
                                        type: string
                                      type:
                                        description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  capabilities:
                                    description: 'The capabilities to add/drop when running containers.

                                      Defaults to the default set of capabilities granted by the container runtime.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      add:
                                        description: Added capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      drop:
                                        description: Removed capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  privileged:
                                    description: 'Run container in privileged mode.

                                      Processes in privileged containers are essentially equivalent to root on the host.

                                      Defaults to false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  procMount:
                                    description: 'procMount denotes the type of proc mount to use for the containers.

                                      The default value is Default which uses the container runtime defaults for

                                      readonly paths and masked paths.

                                      This requires the ProcMountType feature flag to be enabled.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: string
                                  readOnlyRootFilesystem:
                                    description: 'Whether this container has a read-only root filesystem.

                                      Default is false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  runAsGroup:
                                    description: 'The GID to run the entrypoint of the container process.

                                      Uses runtime default if unset.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  runAsNonRoot:
                                    description: 'Indicates that the container must run as a non-root user.

                                      If true, the Kubelet will validate the image at runtime to ensure that it

                                      does not run as UID 0 (root) and fail to start the container if it does.

                                      If unset or false, no such validation will be performed.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: boolean
                                  runAsUser:
                                    description: 'The UID to run the entrypoint of the container process.

                                      Defaults to user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  seLinuxOptions:
                                    description: 'The SELinux context to be applied to the container.

                                      If unspecified, the container runtime will allocate a random SELinux context for each

                                      container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      level:
                                        description: Level is SELinux level label that applies to the container.
                                        type: string
                                      role:
                                        description: Role is a SELinux role label that applies to the container.
                                        type: string
                                      type:
                                        description: Type is a SELinux type label that applies to the container.
                                        type: string
                                      user:
                                        description: User is a SELinux user label that applies to the container.
                                        type: string
                                    type: object
                                  seccompProfile:
                                    description: 'The seccomp options to use by this container. If seccomp options are

                                      provided at both the pod & container level, the container options

                                      override the pod options.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                          Must be set if type is "Localhost". Must NOT be set for any other type.'
                                        type: string
                                      type:
                                        description: 'type indicates which kind of seccomp profile will be applied.

                                          Valid options are:


                                          Localhost - a profile defined in a file on the node should be used.

                                          RuntimeDefault - the container runtime default profile should be used.

                                          Unconfined - no profile should be applied.'
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  windowsOptions:
                                    description: 'The Windows specific settings applied to all containers.

                                      If unspecified, the options from the PodSecurityContext will be used.

                                      If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is linux.'
                                    properties:
                                      gmsaCredentialSpec:
                                        description: 'GMSACredentialSpec is where the GMSA admission webhook

                                          (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                          GMSA credential spec named by the GMSACredentialSpecName field.'
                                        type: string
                                      gmsaCredentialSpecName:
                                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                        type: string
                                      hostProcess:
                                        description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                          All of a Pod''s containers must have the same effective HostProcess value

                                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                          In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                        type: boolean
                                      runAsUserName:
                                        description: 'The UserName in Windows to run the entrypoint of the container process.

                                          Defaults to the user specified in image metadata if unspecified.

                                          May also be set in PodSecurityContext. If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                        type: string
                                    type: object
                                type: object
                              startupProbe:
                                description: 'StartupProbe indicates that the Pod has successfully initialized.

                                  If specified, no other probes are executed until this completes successfully.

                                  If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                                  This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                                  when it might take a long time to load data or warm a cache, than during steady-state operation.

                                  This cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              stdin:
                                description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                                  is not set, reads from stdin in the container will always result in EOF.

                                  Default is false.'
                                type: boolean
                              stdinOnce:
                                description: 'Whether the container runtime should close the stdin channel after it has been opened by

                                  a single attach. When stdin is true the stdin stream will remain open across multiple attach

                                  sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                                  first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                                  at which time stdin is closed and remains closed until the container is restarted. If this

                                  flag is false, a container processes that reads from stdin will never receive an EOF.

                                  Default is false'
                                type: boolean
                              terminationMessagePath:
                                description: 'Optional: Path at which the file to which the container''s termination message

                                  will be written is mounted into the container''s filesystem.

                                  Message written is intended to be brief final status, such as an assertion failure message.

                                  Will be truncated by the node if greater than 4096 bytes. The total message length across

                                  all containers will be limited to 12kb.

                                  Defaults to /dev/termination-log.

                                  Cannot be updated.'
                                type: string
                              terminationMessagePolicy:
                                description: 'Indicate how the termination message should be populated. File will use the contents of

                                  terminationMessagePath to populate the container status message on both success and failure.

                                  FallbackToLogsOnError will use the last chunk of container log output if the termination

                                  message file is empty and the container exited with an error.

                                  The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                                  Defaults to File.

                                  Cannot be updated.'
                                type: string
                              tty:
                                description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                                  Default is false.'
                                type: boolean
                              volumeDevices:
                                description: volumeDevices is the list of block devices to be used by the container.
                                items:
                                  description: volumeDevice describes a mapping of a raw block device within a container.
                                  properties:
                                    devicePath:
                                      description: devicePath is the path inside of the container that the device will be mapped to.
                                      type: string
                                    name:
                                      description: name must match the name of a persistentVolumeClaim in the pod
                                      type: string
                                  required:
                                  - devicePath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - devicePath
                                x-kubernetes-list-type: map
                              volumeMounts:
                                description: 'Pod volumes to mount into the container''s filesystem.

                                  Cannot be updated.'
                                items:
                                  description: VolumeMount describes a mounting of a Volume within a container.
                                  properties:
                                    mountPath:
                                      description: 'Path within the container at which the volume should be mounted.  Must

                                        not contain '':''.'
                                      type: string
                                    mountPropagation:
                                      description: 'mountPropagation determines how mounts are propagated from the host

                                        to container and the other way around.

                                        When not set, MountPropagationNone is used.

                                        This field is beta in 1.10.

                                        When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                        (which defaults to None).'
                                      type: string
                                    name:
                                      description: This must match the Name of a Volume.
                                      type: string
                                    readOnly:
                                      description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                        Defaults to false.'
                                      type: boolean
                                    recursiveReadOnly:
                                      description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                        recursively.


                                        If ReadOnly is false, this field has no meaning and must be unspecified.


                                        If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                        recursively read-only.  If this field is set to IfPossible, the mount is made

                                        recursively read-only, if it is supported by the container runtime.  If this

                                        field is set to Enabled, the mount is made recursively read-only if it is

                                        supported by the container runtime, otherwise the pod will not be started and

                                        an error will be generated to indicate the reason.


                                        If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                        None (or be unspecified, which defaults to None).


                                        If this field is not specified, it is treated as an equivalent of Disabled.'
                                      type: string
                                    subPath:
                                      description: 'Path within the volume from which the container''s volume should be mounted.

                                        Defaults to "" (volume''s root).'
                                      type: string
                                    subPathExpr:
                                      description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                        Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                        Defaults to "" (volume''s root).

                                        SubPathExpr and SubPath are mutually exclusive.'
                                      type: string
                                  required:
                                  - mountPath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - mountPath
                                x-kubernetes-list-type: map
                              workingDir:
                                description: 'Container''s working directory.

                                  If not specified, the container runtime''s default will be used, which

                                  might be configured in the container image.

                                  Cannot be updated.'
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        inputs:
                          description: Inputs describe what inputs parameters and artifacts are supplied to this template
                          properties:
                            artifacts:
                              description: Artifact are a list of artifacts passed as inputs
                              items:
                                description: Artifact indicates an artifact to place at a specified path
                                properties:
                                  archive:
                                    description: Archive controls how the artifact will be saved to the artifact repository.
                                    properties:
                                      none:
                                        description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                          files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                          save/load the directory appropriately.'
                                        type: object
                                      tar:
                                        description: TarStrategy will tar and gzip the file or directory when saving
                                        properties:
                                          compressionLevel:
                                            description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                              Defaults to gzip.DefaultCompression.'
                                            format: int32
                                            type: integer
                                        type: object
                                      zip:
                                        description: ZipStrategy will unzip zipped input artifacts
                                        type: object
                                    type: object
                                  archiveLogs:
                                    description: ArchiveLogs indicates if the container logs should be archived
                                    type: boolean
                                  artifactGC:
                                    description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                    properties:
                                      podMetadata:
                                        description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                        properties:
                                          annotations:
                                            additionalProperties:
                                              type: string
                                            type: object
                                          labels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                      serviceAccountName:
                                        description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                        type: string
                                      strategy:
                                        description: Strategy is the strategy to use.
                                        enum:
                                        - ''
                                        - OnWorkflowCompletion
                                        - OnWorkflowDeletion
                                        - Never
                                        type: string
                                    type: object
                                  artifactory:
                                    description: Artifactory contains artifactory artifact location details
                                    properties:
                                      passwordSecret:
                                        description: PasswordSecret is the secret selector to the repository password
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      url:
                                        description: URL of the artifact
                                        type: string
                                      usernameSecret:
                                        description: UsernameSecret is the secret selector to the repository username
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - url
                                    type: object
                                  azure:
                                    description: Azure contains Azure Storage artifact location details
                                    properties:
                                      accountKeySecret:
                                        description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      blob:
                                        description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                        type: string
                                      container:
                                        description: Container is the container where resources will be stored
                                        type: string
                                      endpoint:
                                        description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                        type: string
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    required:
                                    - blob
                                    - container
                                    - endpoint
                                    type: object
                                  deleted:
                                    description: Has this been deleted?
                                    type: boolean
                                  from:
                                    description: From allows an artifact to reference an artifact from a previous step
                                    type: string
                                  fromExpression:
                                    description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                    type: string
                                  gcs:
                                    description: GCS contains GCS artifact location details
                                    properties:
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      key:
                                        description: Key is the path in the bucket where the artifact resides
                                        type: string
                                      serviceAccountKeySecret:
                                        description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - key
                                    type: object
                                  git:
                                    description: Git contains git artifact location details
                                    properties:
                                      branch:
                                        description: Branch is the branch to fetch when `SingleBranch` is enabled
                                        type: string
                                      depth:
                                        description: 'Depth specifies clones/fetches should be shallow and include the given

                                          number of commits from the branch tip'
                                        format: int64
                                        type: integer
                                      disableSubmodules:
                                        description: DisableSubmodules disables submodules during git clone
                                        type: boolean
                                      fetch:
                                        description: Fetch specifies a number of refs that should be fetched before checkout
                                        items:
                                          type: string
                                        type: array
                                      insecureIgnoreHostKey:
                                        description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                        type: boolean
                                      insecureSkipTLS:
                                        description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                        type: boolean
                                      passwordSecret:
                                        description: PasswordSecret is the secret selector to the repository password
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      repo:
                                        description: Repo is the git repository
                                        type: string
                                      revision:
                                        description: Revision is the git commit, tag, branch to checkout
                                        type: string
                                      singleBranch:
                                        description: SingleBranch enables single branch clone, using the `branch` parameter
                                        type: boolean
                                      sshPrivateKeySecret:
                                        description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      usernameSecret:
                                        description: UsernameSecret is the secret selector to the repository username
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - repo
                                    type: object
                                  globalName:
                                    description: 'GlobalName exports an output artifact to the global scope, making it available as

                                      ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                    type: string
                                  hdfs:
                                    description: HDFS contains HDFS artifact location details
                                    properties:
                                      addresses:
                                        description: Addresses is accessible addresses of HDFS name nodes
                                        items:
                                          type: string
                                        type: array
                                      dataTransferProtection:
                                        description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                          It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                        type: string
                                      force:
                                        description: Force copies a file forcibly even if it exists
                                        type: boolean
                                      hdfsUser:
                                        description: 'HDFSUser is the user to access HDFS file system.

                                          It is ignored if either ccache or keytab is used.'
                                        type: string
                                      krbCCacheSecret:
                                        description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                          Either ccache or keytab can be set to use Kerberos.'
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbConfigConfigMap:
                                        description: 'KrbConfig is the configmap selector for Kerberos config as string

                                          It must be set if either ccache or keytab is used.'
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbKeytabSecret:
                                        description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                          Either ccache or keytab can be set to use Kerberos.'
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbRealm:
                                        description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                          It must be set if keytab is used.'
                                        type: string
                                      krbServicePrincipalName:
                                        description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                          It must be set if either ccache or keytab is used.'
                                        type: string
                                      krbUsername:
                                        description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                          It must be set if keytab is used.'
                                        type: string
                                      path:
                                        description: Path is a file path in HDFS
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  http:
                                    description: HTTP contains HTTP artifact location details
                                    properties:
                                      auth:
                                        description: Auth contains information for client authentication
                                        properties:
                                          basicAuth:
                                            description: BasicAuth describes the secret selectors required for basic authentication
                                            properties:
                                              passwordSecret:
                                                description: PasswordSecret is the secret selector to the repository password
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                description: UsernameSecret is the secret selector to the repository username
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          clientCert:
                                            description: ClientCertAuth holds necessary information for client authentication via certificates
                                            properties:
                                              clientCertSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientKeySecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          oauth2:
                                            description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                            properties:
                                              clientIDSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientSecretSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              endpointParams:
                                                items:
                                                  description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                  properties:
                                                    key:
                                                      description: Name is the header name
                                                      type: string
                                                    value:
                                                      description: Value is the literal value to use for the header
                                                      type: string
                                                  required:
                                                  - key
                                                  type: object
                                                type: array
                                              scopes:
                                                items:
                                                  type: string
                                                type: array
                                              tokenURLSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                        type: object
                                      headers:
                                        description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                        items:
                                          description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                          properties:
                                            name:
                                              description: Name is the header name
                                              type: string
                                            value:
                                              description: Value is the literal value to use for the header
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      url:
                                        description: URL of the artifact
                                        type: string
                                    required:
                                    - url
                                    type: object
                                  mode:
                                    description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                      Set when loading input artifacts. It is recommended to set the mode value

                                      to ensure the artifact has the expected permissions in your container.'
                                    format: int32
                                    maximum: 511
                                    minimum: 0
                                    type: integer
                                  name:
                                    description: name of the artifact. must be unique within a template's inputs/outputs.
                                    pattern: ^[-a-zA-Z0-9_{}.]+$
                                    type: string
                                  optional:
                                    description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                    type: boolean
                                  oss:
                                    description: OSS contains OSS artifact location details
                                    properties:
                                      accessKeySecret:
                                        description: AccessKeySecret is the secret selector to the bucket's access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      createBucketIfNotPresent:
                                        description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                        type: boolean
                                      endpoint:
                                        description: Endpoint is the hostname of the bucket endpoint
                                        type: string
                                      key:
                                        description: Key is the path in the bucket where the artifact resides
                                        type: string
                                      lifecycleRule:
                                        description: LifecycleRule specifies how to manage bucket's lifecycle
                                        properties:
                                          markDeletionAfterDays:
                                            description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                            format: int32
                                            type: integer
                                          markInfrequentAccessAfterDays:
                                            description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                            format: int32
                                            type: integer
                                        type: object
                                      secretKeySecret:
                                        description: SecretKeySecret is the secret selector to the bucket's secret key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      securityToken:
                                        description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                        type: string
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  path:
                                    description: Path is the container path to the artifact
                                    type: string
                                  plugin:
                                    description: Plugin contains plugin artifact location details
                                    properties:
                                      configuration:
                                        description: Configuration is the plugin defined configuration for the artifact driver plugin
                                        type: string
                                      connectionTimeoutSeconds:
                                        description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                        format: int32
                                        type: integer
                                      key:
                                        description: Key is the path in the artifact repository where the artifact resides
                                        type: string
                                      name:
                                        description: Name is the name of the artifact driver plugin
                                        type: string
                                    required:
                                    - key
                                    type: object
                                  raw:
                                    description: Raw contains raw artifact location details
                                    properties:
                                      data:
                                        description: Data is the string contents of the artifact
                                        type: string
                                    required:
                                    - data
                                    type: object
                                  recurseMode:
                                    description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                    type: boolean
                                  s3:
                                    description: S3 contains S3 artifact location details
                                    properties:
                                      accessKeySecret:
                                        description: AccessKeySecret is the secret selector to the bucket's access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      caSecret:
                                        description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      createBucketIfNotPresent:
                                        description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                        properties:
                                          objectLocking:
                                            description: ObjectLocking Enable object locking
                                            type: boolean
                                        type: object
                                      encryptionOptions:
                                        description: S3EncryptionOptions used to determine encryption options during s3 operations
                                        properties:
                                          enableEncryption:
                                            description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                            type: boolean
                                          kmsEncryptionContext:
                                            description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                            type: string
                                          kmsKeyId:
                                            description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                            type: string
                                          serverSideCustomerKeySecret:
                                            description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      endpoint:
                                        description: Endpoint is the hostname of the bucket endpoint
                                        type: string
                                      insecure:
                                        description: Insecure will connect to the service with TLS
                                        type: boolean
                                      key:
                                        description: Key is the key in the bucket where the artifact resides
                                        type: string
                                      region:
                                        description: Region contains the optional bucket region
                                        type: string
                                      roleARN:
                                        description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                        type: string
                                      secretKeySecret:
                                        description: SecretKeySecret is the secret selector to the bucket's secret key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      sessionTokenSecret:
                                        description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    type: object
                                  subPath:
                                    description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                    type: string
                                required:
                                - name
                                type: object
                                x-kubernetes-validations:
                                - message: at most one artifact location can be specified
                                  rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                              type: array
                            parameters:
                              description: 'Parameters are a list of parameters passed as inputs

                                MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                              items:
                                description: Parameter indicate a passed string parameter to a service template with an optional default value
                                properties:
                                  default:
                                    description: Default is the default value to use for an input parameter if a value was not supplied
                                    type: string
                                  description:
                                    description: Description is the parameter description
                                    type: string
                                  enum:
                                    description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                    items:
                                      description: '* It''s JSON type is just string.

                                        * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                        * It will marshall back to string - marshalling is not symmetric.'
                                      type: string
                                    minItems: 1
                                    type: array
                                  globalName:
                                    description: 'GlobalName exports an output parameter to the global scope, making it available as

                                      ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                    type: string
                                  name:
                                    description: Name is the parameter name
                                    pattern: ^[-a-zA-Z0-9_]+$
                                    type: string
                                  value:
                                    description: 'Value is the literal value to use for the parameter.

                                      If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                    type: string
                                  valueFrom:
                                    description: ValueFrom is the source for the output parameter's value
                                    properties:
                                      configMapKeyRef:
                                        description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      default:
                                        description: Default specifies a value to be used if retrieving the value from the specified source fails
                                        type: string
                                      event:
                                        description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                        type: string
                                      expression:
                                        description: Expression, if defined, is evaluated to specify the value for the parameter
                                        type: string
                                      jqFilter:
                                        description: JQFilter expression against the resource object in resource templates
                                        type: string
                                      jsonPath:
                                        description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                        type: string
                                      parameter:
                                        description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                          (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                        type: string
                                      path:
                                        description: Path in the container to retrieve an output parameter value from in container templates
                                        type: string
                                      supplied:
                                        description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              maxItems: 500
                              type: array
                          type: object
                        memoize:
                          description: Memoize allows templates to use outputs generated from already executed templates
                          properties:
                            cache:
                              description: Cache sets and configures the kind of cache
                              properties:
                                configMap:
                                  description: ConfigMap sets a ConfigMap-based cache
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - configMap
                              type: object
                            key:
                              description: Key is the key to use as the caching key
                              type: string
                            maxAge:
                              description: 'MaxAge is the maximum age (e.g. "180s", "24h") of an entry that is still considered valid. If an entry is older

                                than the MaxAge, it will be ignored.'
                              type: string
                          required:
                          - cache
                          - key
                          - maxAge
                          type: object
                        metadata:
                          description: Metadata sets the pods's metadata, i.e. annotations and labels
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        metrics:
                          description: Metrics are a list of metrics emitted from this template
                          properties:
                            prometheus:
                              description: 'Prometheus is a list of prometheus metrics to be emitted

                                MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                              items:
                                description: Prometheus is a prometheus metric to be emitted
                                properties:
                                  counter:
                                    description: Counter is a counter metric
                                    properties:
                                      value:
                                        description: Value is the value of the metric
                                        minLength: 1
                                        type: string
                                    required:
                                    - value
                                    type: object
                                  gauge:
                                    description: Gauge is a gauge metric
                                    properties:
                                      operation:
                                        description: Operation defines the operation to apply with value and the metrics' current value
                                        enum:
                                        - Set
                                        - Add
                                        - Sub
                                        type: string
                                      realtime:
                                        description: Realtime emits this metric in real time if applicable
                                        type: boolean
                                      value:
                                        description: 'Value is the value to be used in the operation with the metric''s current value. If no operation is set,

                                          value is the value of the metric

                                          MaxLength is an artificial limit to limit CEL validation costs - see note at top of file'
                                        maxLength: 256
                                        minLength: 1
                                        type: string
                                    required:
                                    - realtime
                                    - value
                                    type: object
                                    x-kubernetes-validations:
                                    - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                      rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                                  help:
                                    description: Help is a string that describes the metric
                                    minLength: 1
                                    type: string
                                  histogram:
                                    description: Histogram is a histogram metric
                                    properties:
                                      buckets:
                                        description: Buckets is a list of bucket divisors for the histogram
                                        items:
                                          type: number
                                        type: array
                                      value:
                                        description: Value is the value of the metric
                                        minLength: 1
                                        type: string
                                    required:
                                    - buckets
                                    - value
                                    type: object
                                  labels:
                                    description: Labels is a list of metric labels
                                    items:
                                      description: MetricLabel is a single label for a prometheus metric
                                      properties:
                                        key:
                                          pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - key
                                      - value
                                      type: object
                                    type: array
                                  name:
                                    description: Name is the name of the metric
                                    pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                    type: string
                                  when:
                                    description: When is a conditional statement that decides when to emit the metric
                                    type: string
                                required:
                                - help
                                - name
                                type: object
                              maxItems: 100
                              type: array
                          required:
                          - prometheus
                          type: object
                        name:
                          description: Name is the name of the template
                          maxLength: 128
                          pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                          type: string
                        nodeSelector:
                          additionalProperties:
                            type: string
                          description: 'NodeSelector is a selector to schedule this step of the workflow to be

                            run on the selected node(s). Overrides the selector set at the workflow level.'
                          type: object
                        outputs:
                          description: Outputs describe the parameters and artifacts that this template produces
                          properties:
                            artifacts:
                              description: Artifacts holds the list of output artifacts produced by a step
                              items:
                                description: Artifact indicates an artifact to place at a specified path
                                properties:
                                  archive:
                                    description: Archive controls how the artifact will be saved to the artifact repository.
                                    properties:
                                      none:
                                        description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                          files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                          save/load the directory appropriately.'
                                        type: object
                                      tar:
                                        description: TarStrategy will tar and gzip the file or directory when saving
                                        properties:
                                          compressionLevel:
                                            description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                              Defaults to gzip.DefaultCompression.'
                                            format: int32
                                            type: integer
                                        type: object
                                      zip:
                                        description: ZipStrategy will unzip zipped input artifacts
                                        type: object
                                    type: object
                                  archiveLogs:
                                    description: ArchiveLogs indicates if the container logs should be archived
                                    type: boolean
                                  artifactGC:
                                    description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                    properties:
                                      podMetadata:
                                        description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                        properties:
                                          annotations:
                                            additionalProperties:
                                              type: string
                                            type: object
                                          labels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                      serviceAccountName:
                                        description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                        type: string
                                      strategy:
                                        description: Strategy is the strategy to use.
                                        enum:
                                        - ''
                                        - OnWorkflowCompletion
                                        - OnWorkflowDeletion
                                        - Never
                                        type: string
                                    type: object
                                  artifactory:
                                    description: Artifactory contains artifactory artifact location details
                                    properties:
                                      passwordSecret:
                                        description: PasswordSecret is the secret selector to the repository password
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      url:
                                        description: URL of the artifact
                                        type: string
                                      usernameSecret:
                                        description: UsernameSecret is the secret selector to the repository username
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - url
                                    type: object
                                  azure:
                                    description: Azure contains Azure Storage artifact location details
                                    properties:
                                      accountKeySecret:
                                        description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      blob:
                                        description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                        type: string
                                      container:
                                        description: Container is the container where resources will be stored
                                        type: string
                                      endpoint:
                                        description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                        type: string
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    required:
                                    - blob
                                    - container
                                    - endpoint
                                    type: object
                                  deleted:
                                    description: Has this been deleted?
                                    type: boolean
                                  from:
                                    description: From allows an artifact to reference an artifact from a previous step
                                    type: string
                                  fromExpression:
                                    description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                    type: string
                                  gcs:
                                    description: GCS contains GCS artifact location details
                                    properties:
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      key:
                                        description: Key is the path in the bucket where the artifact resides
                                        type: string
                                      serviceAccountKeySecret:
                                        description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - key
                                    type: object
                                  git:
                                    description: Git contains git artifact location details
                                    properties:
                                      branch:
                                        description: Branch is the branch to fetch when `SingleBranch` is enabled
                                        type: string
                                      depth:
                                        description: 'Depth specifies clones/fetches should be shallow and include the given

                                          number of commits from the branch tip'
                                        format: int64
                                        type: integer
                                      disableSubmodules:
                                        description: DisableSubmodules disables submodules during git clone
                                        type: boolean
                                      fetch:
                                        description: Fetch specifies a number of refs that should be fetched before checkout
                                        items:
                                          type: string
                                        type: array
                                      insecureIgnoreHostKey:
                                        description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                        type: boolean
                                      insecureSkipTLS:
                                        description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                        type: boolean
                                      passwordSecret:
                                        description: PasswordSecret is the secret selector to the repository password
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      repo:
                                        description: Repo is the git repository
                                        type: string
                                      revision:
                                        description: Revision is the git commit, tag, branch to checkout
                                        type: string
                                      singleBranch:
                                        description: SingleBranch enables single branch clone, using the `branch` parameter
                                        type: boolean
                                      sshPrivateKeySecret:
                                        description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      usernameSecret:
                                        description: UsernameSecret is the secret selector to the repository username
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    required:
                                    - repo
                                    type: object
                                  globalName:
                                    description: 'GlobalName exports an output artifact to the global scope, making it available as

                                      ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                    type: string
                                  hdfs:
                                    description: HDFS contains HDFS artifact location details
                                    properties:
                                      addresses:
                                        description: Addresses is accessible addresses of HDFS name nodes
                                        items:
                                          type: string
                                        type: array
                                      dataTransferProtection:
                                        description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                          It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                        type: string
                                      force:
                                        description: Force copies a file forcibly even if it exists
                                        type: boolean
                                      hdfsUser:
                                        description: 'HDFSUser is the user to access HDFS file system.

                                          It is ignored if either ccache or keytab is used.'
                                        type: string
                                      krbCCacheSecret:
                                        description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                          Either ccache or keytab can be set to use Kerberos.'
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbConfigConfigMap:
                                        description: 'KrbConfig is the configmap selector for Kerberos config as string

                                          It must be set if either ccache or keytab is used.'
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbKeytabSecret:
                                        description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                          Either ccache or keytab can be set to use Kerberos.'
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      krbRealm:
                                        description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                          It must be set if keytab is used.'
                                        type: string
                                      krbServicePrincipalName:
                                        description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                          It must be set if either ccache or keytab is used.'
                                        type: string
                                      krbUsername:
                                        description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                          It must be set if keytab is used.'
                                        type: string
                                      path:
                                        description: Path is a file path in HDFS
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  http:
                                    description: HTTP contains HTTP artifact location details
                                    properties:
                                      auth:
                                        description: Auth contains information for client authentication
                                        properties:
                                          basicAuth:
                                            description: BasicAuth describes the secret selectors required for basic authentication
                                            properties:
                                              passwordSecret:
                                                description: PasswordSecret is the secret selector to the repository password
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                description: UsernameSecret is the secret selector to the repository username
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          clientCert:
                                            description: ClientCertAuth holds necessary information for client authentication via certificates
                                            properties:
                                              clientCertSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientKeySecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          oauth2:
                                            description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                            properties:
                                              clientIDSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              clientSecretSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              endpointParams:
                                                items:
                                                  description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                  properties:
                                                    key:
                                                      description: Name is the header name
                                                      type: string
                                                    value:
                                                      description: Value is the literal value to use for the header
                                                      type: string
                                                  required:
                                                  - key
                                                  type: object
                                                type: array
                                              scopes:
                                                items:
                                                  type: string
                                                type: array
                                              tokenURLSecret:
                                                description: SecretKeySelector selects a key of a Secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                        type: object
                                      headers:
                                        description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                        items:
                                          description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                          properties:
                                            name:
                                              description: Name is the header name
                                              type: string
                                            value:
                                              description: Value is the literal value to use for the header
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      url:
                                        description: URL of the artifact
                                        type: string
                                    required:
                                    - url
                                    type: object
                                  mode:
                                    description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                      Set when loading input artifacts. It is recommended to set the mode value

                                      to ensure the artifact has the expected permissions in your container.'
                                    format: int32
                                    maximum: 511
                                    minimum: 0
                                    type: integer
                                  name:
                                    description: name of the artifact. must be unique within a template's inputs/outputs.
                                    pattern: ^[-a-zA-Z0-9_{}.]+$
                                    type: string
                                  optional:
                                    description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                    type: boolean
                                  oss:
                                    description: OSS contains OSS artifact location details
                                    properties:
                                      accessKeySecret:
                                        description: AccessKeySecret is the secret selector to the bucket's access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      createBucketIfNotPresent:
                                        description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                        type: boolean
                                      endpoint:
                                        description: Endpoint is the hostname of the bucket endpoint
                                        type: string
                                      key:
                                        description: Key is the path in the bucket where the artifact resides
                                        type: string
                                      lifecycleRule:
                                        description: LifecycleRule specifies how to manage bucket's lifecycle
                                        properties:
                                          markDeletionAfterDays:
                                            description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                            format: int32
                                            type: integer
                                          markInfrequentAccessAfterDays:
                                            description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                            format: int32
                                            type: integer
                                        type: object
                                      secretKeySecret:
                                        description: SecretKeySecret is the secret selector to the bucket's secret key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      securityToken:
                                        description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                        type: string
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                  path:
                                    description: Path is the container path to the artifact
                                    type: string
                                  plugin:
                                    description: Plugin contains plugin artifact location details
                                    properties:
                                      configuration:
                                        description: Configuration is the plugin defined configuration for the artifact driver plugin
                                        type: string
                                      connectionTimeoutSeconds:
                                        description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                        format: int32
                                        type: integer
                                      key:
                                        description: Key is the path in the artifact repository where the artifact resides
                                        type: string
                                      name:
                                        description: Name is the name of the artifact driver plugin
                                        type: string
                                    required:
                                    - key
                                    type: object
                                  raw:
                                    description: Raw contains raw artifact location details
                                    properties:
                                      data:
                                        description: Data is the string contents of the artifact
                                        type: string
                                    required:
                                    - data
                                    type: object
                                  recurseMode:
                                    description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                    type: boolean
                                  s3:
                                    description: S3 contains S3 artifact location details
                                    properties:
                                      accessKeySecret:
                                        description: AccessKeySecret is the secret selector to the bucket's access key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      bucket:
                                        description: Bucket is the name of the bucket
                                        type: string
                                      caSecret:
                                        description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      createBucketIfNotPresent:
                                        description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                        properties:
                                          objectLocking:
                                            description: ObjectLocking Enable object locking
                                            type: boolean
                                        type: object
                                      encryptionOptions:
                                        description: S3EncryptionOptions used to determine encryption options during s3 operations
                                        properties:
                                          enableEncryption:
                                            description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                            type: boolean
                                          kmsEncryptionContext:
                                            description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                            type: string
                                          kmsKeyId:
                                            description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                            type: string
                                          serverSideCustomerKeySecret:
                                            description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      endpoint:
                                        description: Endpoint is the hostname of the bucket endpoint
                                        type: string
                                      insecure:
                                        description: Insecure will connect to the service with TLS
                                        type: boolean
                                      key:
                                        description: Key is the key in the bucket where the artifact resides
                                        type: string
                                      region:
                                        description: Region contains the optional bucket region
                                        type: string
                                      roleARN:
                                        description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                        type: string
                                      secretKeySecret:
                                        description: SecretKeySecret is the secret selector to the bucket's secret key
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      sessionTokenSecret:
                                        description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      useSDKCreds:
                                        description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                        type: boolean
                                    type: object
                                  subPath:
                                    description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                    type: string
                                required:
                                - name
                                type: object
                                x-kubernetes-validations:
                                - message: at most one artifact location can be specified
                                  rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                              type: array
                            exitCode:
                              description: ExitCode holds the exit code of a script template
                              type: string
                            parameters:
                              description: Parameters holds the list of output parameters produced by a step
                              items:
                                description: Parameter indicate a passed string parameter to a service template with an optional default value
                                properties:
                                  default:
                                    description: Default is the default value to use for an input parameter if a value was not supplied
                                    type: string
                                  description:
                                    description: Description is the parameter description
                                    type: string
                                  enum:
                                    description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                    items:
                                      description: '* It''s JSON type is just string.

                                        * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                        * It will marshall back to string - marshalling is not symmetric.'
                                      type: string
                                    minItems: 1
                                    type: array
                                  globalName:
                                    description: 'GlobalName exports an output parameter to the global scope, making it available as

                                      ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                    type: string
                                  name:
                                    description: Name is the parameter name
                                    pattern: ^[-a-zA-Z0-9_]+$
                                    type: string
                                  value:
                                    description: 'Value is the literal value to use for the parameter.

                                      If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                    type: string
                                  valueFrom:
                                    description: ValueFrom is the source for the output parameter's value
                                    properties:
                                      configMapKeyRef:
                                        description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      default:
                                        description: Default specifies a value to be used if retrieving the value from the specified source fails
                                        type: string
                                      event:
                                        description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                        type: string
                                      expression:
                                        description: Expression, if defined, is evaluated to specify the value for the parameter
                                        type: string
                                      jqFilter:
                                        description: JQFilter expression against the resource object in resource templates
                                        type: string
                                      jsonPath:
                                        description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                        type: string
                                      parameter:
                                        description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                          (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                        type: string
                                      path:
                                        description: Path in the container to retrieve an output parameter value from in container templates
                                        type: string
                                      supplied:
                                        description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                        type: object
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                            result:
                              description: Result holds the result (stdout) of a script or container template, or the response body of an HTTP template
                              type: string
                          type: object
                        parallelism:
                          description: 'Parallelism limits the max total parallel pods that can execute at the same time within the

                            boundaries of this template invocation. If additional steps/dag templates are invoked, the

                            pods created by those templates will not be counted towards this total.'
                          format: int64
                          minimum: 1
                          type: integer
                        plugin:
                          description: 'Plugin is a plugin template

                            Note: the structure of a plugin template is free-form, so we need to have

                            "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                        podSpecPatch:
                          description: 'PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of

                            container fields which are not strings (e.g. resource limits).'
                          type: string
                        priorityClassName:
                          description: PriorityClassName to apply to workflow pods.
                          type: string
                        resource:
                          description: Resource template subtype which can run k8s resources
                          properties:
                            action:
                              description: 'Action is the action to perform to the resource.

                                Must be one of: get, create, apply, delete, replace, patch'
                              enum:
                              - get
                              - create
                              - apply
                              - delete
                              - replace
                              - patch
                              type: string
                            failureCondition:
                              description: 'FailureCondition is a label selector expression which describes the conditions

                                of the k8s resource in which the step was considered failed'
                              type: string
                            flags:
                              description: "Flags is a set of additional options passed to kubectl before submitting a resource\nI.e. to disable resource validation:\nflags: [\n\t\"--validate=false\"  # disable resource validation\n]"
                              items:
                                type: string
                              type: array
                            manifest:
                              description: Manifest contains the kubernetes manifest
                              type: string
                            manifestFrom:
                              description: ManifestFrom is the source for a single kubernetes manifest
                              properties:
                                artifact:
                                  description: Artifact contains the artifact to use
                                  properties:
                                    archive:
                                      description: Archive controls how the artifact will be saved to the artifact repository.
                                      properties:
                                        none:
                                          description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                            files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                            save/load the directory appropriately.'
                                          type: object
                                        tar:
                                          description: TarStrategy will tar and gzip the file or directory when saving
                                          properties:
                                            compressionLevel:
                                              description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                Defaults to gzip.DefaultCompression.'
                                              format: int32
                                              type: integer
                                          type: object
                                        zip:
                                          description: ZipStrategy will unzip zipped input artifacts
                                          type: object
                                      type: object
                                    archiveLogs:
                                      description: ArchiveLogs indicates if the container logs should be archived
                                      type: boolean
                                    artifactGC:
                                      description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                      properties:
                                        podMetadata:
                                          description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        serviceAccountName:
                                          description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                          type: string
                                        strategy:
                                          description: Strategy is the strategy to use.
                                          enum:
                                          - ''
                                          - OnWorkflowCompletion
                                          - OnWorkflowDeletion
                                          - Never
                                          type: string
                                      type: object
                                    artifactory:
                                      description: Artifactory contains artifactory artifact location details
                                      properties:
                                        passwordSecret:
                                          description: PasswordSecret is the secret selector to the repository password
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        url:
                                          description: URL of the artifact
                                          type: string
                                        usernameSecret:
                                          description: UsernameSecret is the secret selector to the repository username
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - url
                                      type: object
                                    azure:
                                      description: Azure contains Azure Storage artifact location details
                                      properties:
                                        accountKeySecret:
                                          description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        blob:
                                          description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                          type: string
                                        container:
                                          description: Container is the container where resources will be stored
                                          type: string
                                        endpoint:
                                          description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                          type: string
                                        useSDKCreds:
                                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                          type: boolean
                                      required:
                                      - blob
                                      - container
                                      - endpoint
                                      type: object
                                    deleted:
                                      description: Has this been deleted?
                                      type: boolean
                                    from:
                                      description: From allows an artifact to reference an artifact from a previous step
                                      type: string
                                    fromExpression:
                                      description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                      type: string
                                    gcs:
                                      description: GCS contains GCS artifact location details
                                      properties:
                                        bucket:
                                          description: Bucket is the name of the bucket
                                          type: string
                                        key:
                                          description: Key is the path in the bucket where the artifact resides
                                          type: string
                                        serviceAccountKeySecret:
                                          description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - key
                                      type: object
                                    git:
                                      description: Git contains git artifact location details
                                      properties:
                                        branch:
                                          description: Branch is the branch to fetch when `SingleBranch` is enabled
                                          type: string
                                        depth:
                                          description: 'Depth specifies clones/fetches should be shallow and include the given

                                            number of commits from the branch tip'
                                          format: int64
                                          type: integer
                                        disableSubmodules:
                                          description: DisableSubmodules disables submodules during git clone
                                          type: boolean
                                        fetch:
                                          description: Fetch specifies a number of refs that should be fetched before checkout
                                          items:
                                            type: string
                                          type: array
                                        insecureIgnoreHostKey:
                                          description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                          type: boolean
                                        insecureSkipTLS:
                                          description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                          type: boolean
                                        passwordSecret:
                                          description: PasswordSecret is the secret selector to the repository password
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        repo:
                                          description: Repo is the git repository
                                          type: string
                                        revision:
                                          description: Revision is the git commit, tag, branch to checkout
                                          type: string
                                        singleBranch:
                                          description: SingleBranch enables single branch clone, using the `branch` parameter
                                          type: boolean
                                        sshPrivateKeySecret:
                                          description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          description: UsernameSecret is the secret selector to the repository username
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - repo
                                      type: object
                                    globalName:
                                      description: 'GlobalName exports an output artifact to the global scope, making it available as

                                        ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                      type: string
                                    hdfs:
                                      description: HDFS contains HDFS artifact location details
                                      properties:
                                        addresses:
                                          description: Addresses is accessible addresses of HDFS name nodes
                                          items:
                                            type: string
                                          type: array
                                        dataTransferProtection:
                                          description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                            It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                          type: string
                                        force:
                                          description: Force copies a file forcibly even if it exists
                                          type: boolean
                                        hdfsUser:
                                          description: 'HDFSUser is the user to access HDFS file system.

                                            It is ignored if either ccache or keytab is used.'
                                          type: string
                                        krbCCacheSecret:
                                          description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                            Either ccache or keytab can be set to use Kerberos.'
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbConfigConfigMap:
                                          description: 'KrbConfig is the configmap selector for Kerberos config as string

                                            It must be set if either ccache or keytab is used.'
                                          properties:
                                            key:
                                              description: The key to select.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the ConfigMap or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbKeytabSecret:
                                          description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                            Either ccache or keytab can be set to use Kerberos.'
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbRealm:
                                          description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                            It must be set if keytab is used.'
                                          type: string
                                        krbServicePrincipalName:
                                          description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                            It must be set if either ccache or keytab is used.'
                                          type: string
                                        krbUsername:
                                          description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                            It must be set if keytab is used.'
                                          type: string
                                        path:
                                          description: Path is a file path in HDFS
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    http:
                                      description: HTTP contains HTTP artifact location details
                                      properties:
                                        auth:
                                          description: Auth contains information for client authentication
                                          properties:
                                            basicAuth:
                                              description: BasicAuth describes the secret selectors required for basic authentication
                                              properties:
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            clientCert:
                                              description: ClientCertAuth holds necessary information for client authentication via certificates
                                              properties:
                                                clientCertSecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientKeySecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            oauth2:
                                              description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                              properties:
                                                clientIDSecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientSecretSecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                endpointParams:
                                                  items:
                                                    description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                    properties:
                                                      key:
                                                        description: Name is the header name
                                                        type: string
                                                      value:
                                                        description: Value is the literal value to use for the header
                                                        type: string
                                                    required:
                                                    - key
                                                    type: object
                                                  type: array
                                                scopes:
                                                  items:
                                                    type: string
                                                  type: array
                                                tokenURLSecret:
                                                  description: SecretKeySelector selects a key of a Secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                          type: object
                                        headers:
                                          description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                          items:
                                            description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                            properties:
                                              name:
                                                description: Name is the header name
                                                type: string
                                              value:
                                                description: Value is the literal value to use for the header
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        url:
                                          description: URL of the artifact
                                          type: string
                                      required:
                                      - url
                                      type: object
                                    mode:
                                      description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                        Set when loading input artifacts. It is recommended to set the mode value

                                        to ensure the artifact has the expected permissions in your container.'
                                      format: int32
                                      maximum: 511
                                      minimum: 0
                                      type: integer
                                    name:
                                      description: name of the artifact. must be unique within a template's inputs/outputs.
                                      pattern: ^[-a-zA-Z0-9_{}.]+$
                                      type: string
                                    optional:
                                      description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                      type: boolean
                                    oss:
                                      description: OSS contains OSS artifact location details
                                      properties:
                                        accessKeySecret:
                                          description: AccessKeySecret is the secret selector to the bucket's access key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          description: Bucket is the name of the bucket
                                          type: string
                                        createBucketIfNotPresent:
                                          description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                          type: boolean
                                        endpoint:
                                          description: Endpoint is the hostname of the bucket endpoint
                                          type: string
                                        key:
                                          description: Key is the path in the bucket where the artifact resides
                                          type: string
                                        lifecycleRule:
                                          description: LifecycleRule specifies how to manage bucket's lifecycle
                                          properties:
                                            markDeletionAfterDays:
                                              description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                              format: int32
                                              type: integer
                                            markInfrequentAccessAfterDays:
                                              description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                              format: int32
                                              type: integer
                                          type: object
                                        secretKeySecret:
                                          description: SecretKeySecret is the secret selector to the bucket's secret key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        securityToken:
                                          description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                          type: string
                                        useSDKCreds:
                                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    path:
                                      description: Path is the container path to the artifact
                                      type: string
                                    plugin:
                                      description: Plugin contains plugin artifact location details
                                      properties:
                                        configuration:
                                          description: Configuration is the plugin defined configuration for the artifact driver plugin
                                          type: string
                                        connectionTimeoutSeconds:
                                          description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                          format: int32
                                          type: integer
                                        key:
                                          description: Key is the path in the artifact repository where the artifact resides
                                          type: string
                                        name:
                                          description: Name is the name of the artifact driver plugin
                                          type: string
                                      required:
                                      - key
                                      type: object
                                    raw:
                                      description: Raw contains raw artifact location details
                                      properties:
                                        data:
                                          description: Data is the string contents of the artifact
                                          type: string
                                      required:
                                      - data
                                      type: object
                                    recurseMode:
                                      description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                      type: boolean
                                    s3:
                                      description: S3 contains S3 artifact location details
                                      properties:
                                        accessKeySecret:
                                          description: AccessKeySecret is the secret selector to the bucket's access key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          description: Bucket is the name of the bucket
                                          type: string
                                        caSecret:
                                          description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        createBucketIfNotPresent:
                                          description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                          properties:
                                            objectLocking:
                                              description: ObjectLocking Enable object locking
                                              type: boolean
                                          type: object
                                        encryptionOptions:
                                          description: S3EncryptionOptions used to determine encryption options during s3 operations
                                          properties:
                                            enableEncryption:
                                              description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                              type: boolean
                                            kmsEncryptionContext:
                                              description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                              type: string
                                            kmsKeyId:
                                              description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                              type: string
                                            serverSideCustomerKeySecret:
                                              description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        endpoint:
                                          description: Endpoint is the hostname of the bucket endpoint
                                          type: string
                                        insecure:
                                          description: Insecure will connect to the service with TLS
                                          type: boolean
                                        key:
                                          description: Key is the key in the bucket where the artifact resides
                                          type: string
                                        region:
                                          description: Region contains the optional bucket region
                                          type: string
                                        roleARN:
                                          description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                          type: string
                                        secretKeySecret:
                                          description: SecretKeySecret is the secret selector to the bucket's secret key
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        sessionTokenSecret:
                                          description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        useSDKCreds:
                                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                          type: boolean
                                      type: object
                                    subPath:
                                      description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                      type: string
                                  required:
                                  - name
                                  type: object
                                  x-kubernetes-validations:
                                  - message: at most one artifact location can be specified
                                    rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                              required:
                              - artifact
                              type: object
                            mergeStrategy:
                              description: 'MergeStrategy is the strategy used to merge a patch. It defaults to "strategic"

                                Must be one of: strategic, merge, json'
                              enum:
                              - strategic
                              - merge
                              - json
                              type: string
                            setOwnerReference:
                              description: SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource.
                              type: boolean
                            successCondition:
                              description: 'SuccessCondition is a label selector expression which describes the conditions

                                of the k8s resource in which it is acceptable to proceed to the following step'
                              type: string
                          required:
                          - action
                          type: object
                          x-kubernetes-validations:
                          - message: only one of manifest or manifestFrom can be specified
                            rule: (has(self.manifest) && !has(self.manifestFrom)) || (!has(self.manifest) && has(self.manifestFrom)) || (!has(self.manifest) && !has(self.manifestFrom))
                        retryStrategy:
                          description: RetryStrategy describes how to retry a template when it fails
                          properties:
                            affinity:
                              description: Affinity prevents running workflow's step on the same host
                              properties:
                                nodeAntiAffinity:
                                  description: 'RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed.

                                    In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".'
                                  type: object
                              type: object
                            backoff:
                              description: Backoff is a backoff strategy
                              properties:
                                cap:
                                  description: 'Cap is a limit on revised values of the duration parameter. If a

                                    multiplication by the factor parameter would make the duration

                                    exceed the cap then the duration is set to the cap'
                                  type: string
                                duration:
                                  description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                                  type: string
                                factor:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Factor is a factor to multiply the base duration after each failed retry
                                  x-kubernetes-int-or-string: true
                                maxDuration:
                                  description: 'MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy.

                                    It is important to note that if the workflow template includes activeDeadlineSeconds, the pod''s deadline is initially set with activeDeadlineSeconds.

                                    However, when the workflow fails, the pod''s deadline is then overridden by maxDuration.

                                    This ensures that the workflow does not exceed the specified maximum duration when retries are involved.'
                                  type: string
                              type: object
                            expression:
                              description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                be retried and the retry strategy will be ignored'
                              type: string
                            limit:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'Limit is the maximum number of retry attempts when retrying a container. It does not include the original

                                container; the maximum number of total attempts will be `limit + 1`.'
                              x-kubernetes-int-or-string: true
                            retryPolicy:
                              description: RetryPolicy is a policy of NodePhase statuses that will be retried
                              enum:
                              - Always
                              - OnFailure
                              - OnError
                              - OnTransientError
                              type: string
                          type: object
                        schedulerName:
                          description: 'If specified, the pod will be dispatched by specified scheduler.

                            Or it will be dispatched by workflow scope scheduler if specified.

                            If neither specified, the pod will be dispatched by default scheduler.'
                          type: string
                        script:
                          description: Script runs a portion of code against an interpreter
                          properties:
                            args:
                              description: 'Arguments to the entrypoint.

                                The container image''s CMD is used if this is not provided.

                                Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                of whether the variable exists or not. Cannot be updated.

                                More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            command:
                              description: 'Entrypoint array. Not executed within a shell.

                                The container image''s ENTRYPOINT is used if this is not provided.

                                Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                of whether the variable exists or not. Cannot be updated.

                                More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            env:
                              description: 'List of environment variables to set in the container.

                                Cannot be updated.'
                              items:
                                description: EnvVar represents an environment variable present in a Container.
                                properties:
                                  name:
                                    description: Name of the environment variable. Must be a C_IDENTIFIER.
                                    type: string
                                  value:
                                    description: 'Variable references $(VAR_NAME) are expanded

                                      using the previously defined environment variables in the container and

                                      any service environment variables. If a variable cannot be resolved,

                                      the reference in the input string will be unchanged. Double $$ are reduced

                                      to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                      "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                      Escaped references will never be expanded, regardless of whether the variable

                                      exists or not.

                                      Defaults to "".'
                                    type: string
                                  valueFrom:
                                    description: Source for the environment variable's value. Cannot be used if value is not empty.
                                    properties:
                                      configMapKeyRef:
                                        description: Selects a key of a ConfigMap.
                                        properties:
                                          key:
                                            description: The key to select.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the ConfigMap or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                          spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                        properties:
                                          apiVersion:
                                            description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                            type: string
                                          fieldPath:
                                            description: Path of the field to select in the specified API version.
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      resourceFieldRef:
                                        description: 'Selects a resource of the container: only resources limits and requests

                                          (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                        properties:
                                          containerName:
                                            description: 'Container name: required for volumes, optional for env vars'
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: Specifies the output format of the exposed resources, defaults to "1"
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            description: 'Required: resource to select'
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      secretKeyRef:
                                        description: Selects a key of a secret in the pod's namespace
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            envFrom:
                              description: 'List of sources to populate environment variables in the container.

                                The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                                will be reported as an event when the container is starting. When a key exists in multiple

                                sources, the value associated with the last source will take precedence.

                                Values defined by an Env with a duplicate key will take precedence.

                                Cannot be updated.'
                              items:
                                description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                                properties:
                                  configMapRef:
                                    description: The ConfigMap to select from
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  prefix:
                                    description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                    type: string
                                  secretRef:
                                    description: The Secret to select from
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            image:
                              description: 'Container image name.

                                More info: https://kubernetes.io/docs/concepts/containers/images

                                This field is optional to allow higher level config management to default or override

                                container images in workload controllers like Deployments and StatefulSets.'
                              type: string
                            imagePullPolicy:
                              description: 'Image pull policy.

                                One of Always, Never, IfNotPresent.

                                Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                                Cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                              type: string
                            lifecycle:
                              description: 'Actions that the management system should take in response to container lifecycle events.

                                Cannot be updated.'
                              properties:
                                postStart:
                                  description: 'PostStart is called immediately after a container is created. If the handler fails,

                                    the container is terminated and restarted according to its restart policy.

                                    Other management of the container blocks until the hook completes.

                                    More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                  properties:
                                    exec:
                                      description: Exec specifies a command to execute in the container.
                                      properties:
                                        command:
                                          description: 'Command is the command line to execute inside the container, the working directory for the

                                            command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                            not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                            a shell, you need to explicitly call out to that shell.

                                            Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies an HTTP GET request to perform.
                                      properties:
                                        host:
                                          description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                            "Host" in httpHeaders instead.'
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: 'The header field name.

                                                  This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          description: Path to access on the HTTP server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: 'Name or number of the port to access on the container.

                                            Number must be in the range 1 to 65535.

                                            Name must be an IANA_SVC_NAME.'
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: 'Scheme to use for connecting to the host.

                                            Defaults to HTTP.'
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      description: Sleep represents a duration that the container should sleep.
                                      properties:
                                        seconds:
                                          description: Seconds is the number of seconds to sleep.
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                        for backward compatibility. There is no validation of this field and

                                        lifecycle hooks will fail at runtime when it is specified.'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: 'Number or name of the port to access on the container.

                                            Number must be in the range 1 to 65535.

                                            Name must be an IANA_SVC_NAME.'
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  description: 'PreStop is called immediately before a container is terminated due to an

                                    API request or management event such as liveness/startup probe failure,

                                    preemption, resource contention, etc. The handler is not called if the

                                    container crashes or exits. The Pod''s termination grace period countdown begins before the

                                    PreStop hook is executed. Regardless of the outcome of the handler, the

                                    container will eventually terminate within the Pod''s termination grace

                                    period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                    or until the termination grace period is reached.

                                    More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                  properties:
                                    exec:
                                      description: Exec specifies a command to execute in the container.
                                      properties:
                                        command:
                                          description: 'Command is the command line to execute inside the container, the working directory for the

                                            command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                            not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                            a shell, you need to explicitly call out to that shell.

                                            Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      description: HTTPGet specifies an HTTP GET request to perform.
                                      properties:
                                        host:
                                          description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                            "Host" in httpHeaders instead.'
                                          type: string
                                        httpHeaders:
                                          description: Custom headers to set in the request. HTTP allows repeated headers.
                                          items:
                                            description: HTTPHeader describes a custom header to be used in HTTP probes
                                            properties:
                                              name:
                                                description: 'The header field name.

                                                  This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                type: string
                                              value:
                                                description: The header field value
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          description: Path to access on the HTTP server.
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: 'Name or number of the port to access on the container.

                                            Number must be in the range 1 to 65535.

                                            Name must be an IANA_SVC_NAME.'
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          description: 'Scheme to use for connecting to the host.

                                            Defaults to HTTP.'
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      description: Sleep represents a duration that the container should sleep.
                                      properties:
                                        seconds:
                                          description: Seconds is the number of seconds to sleep.
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                        for backward compatibility. There is no validation of this field and

                                        lifecycle hooks will fail at runtime when it is specified.'
                                      properties:
                                        host:
                                          description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: 'Number or name of the port to access on the container.

                                            Number must be in the range 1 to 65535.

                                            Name must be an IANA_SVC_NAME.'
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                stopSignal:
                                  description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                    If not specified, the default is defined by the container runtime in use.

                                    StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                  type: string
                              type: object
                            livenessProbe:
                              description: 'Periodic probe of container liveness.

                                Container will be restarted if the probe fails.

                                Cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                    Defaults to 3. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                grpc:
                                  description: GRPC specifies a GRPC HealthCheckRequest.
                                  properties:
                                    port:
                                      description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                        (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                        If this is not specified, the default behavior is defined by gRPC.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container has started before liveness probes are initiated.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: 'How often (in seconds) to perform the probe.

                                    Default to 10 seconds. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                    Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: TCPSocket specifies a connection to a TCP port.
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                    The grace period is the duration in seconds after the processes running in the pod are sent

                                    a termination signal and the time when the processes are forcibly halted with a kill signal.

                                    Set this value longer than the expected cleanup time for your process.

                                    If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                    value overrides the value provided by the pod spec.

                                    Value must be non-negative integer. The value zero indicates stop immediately via

                                    the kill signal (no opportunity to shut down).

                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the probe times out.

                                    Defaults to 1 second. Minimum value is 1.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              description: 'Name of the container specified as a DNS_LABEL.

                                Each container in a pod must have a unique name (DNS_LABEL).

                                Cannot be updated.'
                              type: string
                            ports:
                              description: 'List of ports to expose from the container. Not specifying a port here

                                DOES NOT prevent that port from being exposed. Any port which is

                                listening on the default "0.0.0.0" address inside a container will be

                                accessible from the network.

                                Modifying this array with strategic merge patch may corrupt the data.

                                For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                                Cannot be updated.'
                              items:
                                description: ContainerPort represents a network port in a single container.
                                properties:
                                  containerPort:
                                    description: 'Number of port to expose on the pod''s IP address.

                                      This must be a valid port number, 0 < x < 65536.'
                                    format: int32
                                    type: integer
                                  hostIP:
                                    description: What host IP to bind the external port to.
                                    type: string
                                  hostPort:
                                    description: 'Number of port to expose on the host.

                                      If specified, this must be a valid port number, 0 < x < 65536.

                                      If HostNetwork is specified, this must match ContainerPort.

                                      Most containers do not need this.'
                                    format: int32
                                    type: integer
                                  name:
                                    description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                      named port in a pod must have a unique name. Name for the port that can be

                                      referred to by services.'
                                    type: string
                                  protocol:
                                    default: TCP
                                    description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                      Defaults to "TCP".'
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              description: 'Periodic probe of container service readiness.

                                Container will be removed from service endpoints if the probe fails.

                                Cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                    Defaults to 3. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                grpc:
                                  description: GRPC specifies a GRPC HealthCheckRequest.
                                  properties:
                                    port:
                                      description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                        (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                        If this is not specified, the default behavior is defined by gRPC.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container has started before liveness probes are initiated.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: 'How often (in seconds) to perform the probe.

                                    Default to 10 seconds. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                    Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: TCPSocket specifies a connection to a TCP port.
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                    The grace period is the duration in seconds after the processes running in the pod are sent

                                    a termination signal and the time when the processes are forcibly halted with a kill signal.

                                    Set this value longer than the expected cleanup time for your process.

                                    If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                    value overrides the value provided by the pod spec.

                                    Value must be non-negative integer. The value zero indicates stop immediately via

                                    the kill signal (no opportunity to shut down).

                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the probe times out.

                                    Defaults to 1 second. Minimum value is 1.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            resizePolicy:
                              description: Resources resize policy for the container.
                              items:
                                description: ContainerResizePolicy represents resource resize policy for the container.
                                properties:
                                  resourceName:
                                    description: 'Name of the resource to which this resource resize policy applies.

                                      Supported values: cpu, memory.'
                                    type: string
                                  restartPolicy:
                                    description: 'Restart policy to apply when specified resource is resized.

                                      If not specified, it defaults to NotRequired.'
                                    type: string
                                required:
                                - resourceName
                                - restartPolicy
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            resources:
                              description: 'Compute Resources required by this container.

                                Cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              properties:
                                claims:
                                  description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                    that are used by this container.


                                    This is an alpha field and requires enabling the

                                    DynamicResourceAllocation feature gate.


                                    This field is immutable. It can only be set for containers.'
                                  items:
                                    description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                    properties:
                                      name:
                                        description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                          the Pod where this field is used. It makes that resource available

                                          inside a container.'
                                        type: string
                                      request:
                                        description: 'Request is the name chosen for a request in the referenced claim.

                                          If empty, everything from the claim is made available, otherwise

                                          only the result of this request.'
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - name
                                  x-kubernetes-list-type: map
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Limits describes the maximum amount of compute resources allowed.

                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Requests describes the minimum amount of compute resources required.

                                    If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                    otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                              type: object
                            restartPolicy:
                              description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                                This field may only be set for init containers, and the only allowed value is "Always".

                                For non-init containers or when this field is not specified,

                                the restart behavior is defined by the Pod''s restart policy and the container type.

                                Setting the RestartPolicy as "Always" for the init container will have the following effect:

                                this init container will be continually restarted on

                                exit until all regular containers have terminated. Once all regular

                                containers have completed, all init containers with restartPolicy "Always"

                                will be shut down. This lifecycle differs from normal init containers and

                                is often referred to as a "sidecar" container. Although this init

                                container still starts in the init container sequence, it does not wait

                                for the container to complete before proceeding to the next init

                                container. Instead, the next init container starts immediately after this

                                init container is started, or after any startupProbe has successfully

                                completed.'
                              type: string
                            securityContext:
                              description: 'SecurityContext defines the security options the container should be run with.

                                If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                                More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                              properties:
                                allowPrivilegeEscalation:
                                  description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                    privileges than its parent process. This bool directly controls if

                                    the no_new_privs flag will be set on the container process.

                                    AllowPrivilegeEscalation is true always when the container is:

                                    1) run as Privileged

                                    2) has CAP_SYS_ADMIN

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  type: boolean
                                appArmorProfile:
                                  description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                    overrides the pod''s appArmorProfile.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  properties:
                                    localhostProfile:
                                      description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                        The profile must be preconfigured on the node to work.

                                        Must match the loaded name of the profile.

                                        Must be set if and only if type is "Localhost".'
                                      type: string
                                    type:
                                      description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                      type: string
                                  required:
                                  - type
                                  type: object
                                capabilities:
                                  description: 'The capabilities to add/drop when running containers.

                                    Defaults to the default set of capabilities granted by the container runtime.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  properties:
                                    add:
                                      description: Added capabilities
                                      items:
                                        description: Capability represent POSIX capabilities type
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    drop:
                                      description: Removed capabilities
                                      items:
                                        description: Capability represent POSIX capabilities type
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                privileged:
                                  description: 'Run container in privileged mode.

                                    Processes in privileged containers are essentially equivalent to root on the host.

                                    Defaults to false.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  type: boolean
                                procMount:
                                  description: 'procMount denotes the type of proc mount to use for the containers.

                                    The default value is Default which uses the container runtime defaults for

                                    readonly paths and masked paths.

                                    This requires the ProcMountType feature flag to be enabled.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  type: string
                                readOnlyRootFilesystem:
                                  description: 'Whether this container has a read-only root filesystem.

                                    Default is false.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  type: boolean
                                runAsGroup:
                                  description: 'The GID to run the entrypoint of the container process.

                                    Uses runtime default if unset.

                                    May also be set in PodSecurityContext.  If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  description: 'Indicates that the container must run as a non-root user.

                                    If true, the Kubelet will validate the image at runtime to ensure that it

                                    does not run as UID 0 (root) and fail to start the container if it does.

                                    If unset or false, no such validation will be performed.

                                    May also be set in PodSecurityContext.  If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: boolean
                                runAsUser:
                                  description: 'The UID to run the entrypoint of the container process.

                                    Defaults to user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext.  If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  description: 'The SELinux context to be applied to the container.

                                    If unspecified, the container runtime will allocate a random SELinux context for each

                                    container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  properties:
                                    level:
                                      description: Level is SELinux level label that applies to the container.
                                      type: string
                                    role:
                                      description: Role is a SELinux role label that applies to the container.
                                      type: string
                                    type:
                                      description: Type is a SELinux type label that applies to the container.
                                      type: string
                                    user:
                                      description: User is a SELinux user label that applies to the container.
                                      type: string
                                  type: object
                                seccompProfile:
                                  description: 'The seccomp options to use by this container. If seccomp options are

                                    provided at both the pod & container level, the container options

                                    override the pod options.

                                    Note that this field cannot be set when spec.os.name is windows.'
                                  properties:
                                    localhostProfile:
                                      description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                        The profile must be preconfigured on the node to work.

                                        Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                        Must be set if type is "Localhost". Must NOT be set for any other type.'
                                      type: string
                                    type:
                                      description: 'type indicates which kind of seccomp profile will be applied.

                                        Valid options are:


                                        Localhost - a profile defined in a file on the node should be used.

                                        RuntimeDefault - the container runtime default profile should be used.

                                        Unconfined - no profile should be applied.'
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  description: 'The Windows specific settings applied to all containers.

                                    If unspecified, the options from the PodSecurityContext will be used.

                                    If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                    Note that this field cannot be set when spec.os.name is linux.'
                                  properties:
                                    gmsaCredentialSpec:
                                      description: 'GMSACredentialSpec is where the GMSA admission webhook

                                        (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                        GMSA credential spec named by the GMSACredentialSpecName field.'
                                      type: string
                                    gmsaCredentialSpecName:
                                      description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                      type: string
                                    hostProcess:
                                      description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                        All of a Pod''s containers must have the same effective HostProcess value

                                        (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                        In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                      type: boolean
                                    runAsUserName:
                                      description: 'The UserName in Windows to run the entrypoint of the container process.

                                        Defaults to the user specified in image metadata if unspecified.

                                        May also be set in PodSecurityContext. If set in both SecurityContext and

                                        PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                      type: string
                                  type: object
                              type: object
                            source:
                              description: Source contains the source code of the script to execute
                              type: string
                            startupProbe:
                              description: 'StartupProbe indicates that the Pod has successfully initialized.

                                If specified, no other probes are executed until this completes successfully.

                                If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                                This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                                when it might take a long time to load data or warm a cache, than during steady-state operation.

                                This cannot be updated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                    Defaults to 3. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                grpc:
                                  description: GRPC specifies a GRPC HealthCheckRequest.
                                  properties:
                                    port:
                                      description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                        (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                        If this is not specified, the default behavior is defined by gRPC.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  description: 'Number of seconds after the container has started before liveness probes are initiated.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  description: 'How often (in seconds) to perform the probe.

                                    Default to 10 seconds. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                successThreshold:
                                  description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                    Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  description: TCPSocket specifies a connection to a TCP port.
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                    The grace period is the duration in seconds after the processes running in the pod are sent

                                    a termination signal and the time when the processes are forcibly halted with a kill signal.

                                    Set this value longer than the expected cleanup time for your process.

                                    If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                    value overrides the value provided by the pod spec.

                                    Value must be non-negative integer. The value zero indicates stop immediately via

                                    the kill signal (no opportunity to shut down).

                                    This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                    Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  description: 'Number of seconds after which the probe times out.

                                    Defaults to 1 second. Minimum value is 1.

                                    More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                                is not set, reads from stdin in the container will always result in EOF.

                                Default is false.'
                              type: boolean
                            stdinOnce:
                              description: 'Whether the container runtime should close the stdin channel after it has been opened by

                                a single attach. When stdin is true the stdin stream will remain open across multiple attach

                                sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                                first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                                at which time stdin is closed and remains closed until the container is restarted. If this

                                flag is false, a container processes that reads from stdin will never receive an EOF.

                                Default is false'
                              type: boolean
                            terminationMessagePath:
                              description: 'Optional: Path at which the file to which the container''s termination message

                                will be written is mounted into the container''s filesystem.

                                Message written is intended to be brief final status, such as an assertion failure message.

                                Will be truncated by the node if greater than 4096 bytes. The total message length across

                                all containers will be limited to 12kb.

                                Defaults to /dev/termination-log.

                                Cannot be updated.'
                              type: string
                            terminationMessagePolicy:
                              description: 'Indicate how the termination message should be populated. File will use the contents of

                                terminationMessagePath to populate the container status message on both success and failure.

                                FallbackToLogsOnError will use the last chunk of container log output if the termination

                                message file is empty and the container exited with an error.

                                The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                                Defaults to File.

                                Cannot be updated.'
                              type: string
                            tty:
                              description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                                Default is false.'
                              type: boolean
                            volumeDevices:
                              description: volumeDevices is the list of block devices to be used by the container.
                              items:
                                description: volumeDevice describes a mapping of a raw block device within a container.
                                properties:
                                  devicePath:
                                    description: devicePath is the path inside of the container that the device will be mapped to.
                                    type: string
                                  name:
                                    description: name must match the name of a persistentVolumeClaim in the pod
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - devicePath
                              x-kubernetes-list-type: map
                            volumeMounts:
                              description: 'Pod volumes to mount into the container''s filesystem.

                                Cannot be updated.'
                              items:
                                description: VolumeMount describes a mounting of a Volume within a container.
                                properties:
                                  mountPath:
                                    description: 'Path within the container at which the volume should be mounted.  Must

                                      not contain '':''.'
                                    type: string
                                  mountPropagation:
                                    description: 'mountPropagation determines how mounts are propagated from the host

                                      to container and the other way around.

                                      When not set, MountPropagationNone is used.

                                      This field is beta in 1.10.

                                      When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                      (which defaults to None).'
                                    type: string
                                  name:
                                    description: This must match the Name of a Volume.
                                    type: string
                                  readOnly:
                                    description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                      Defaults to false.'
                                    type: boolean
                                  recursiveReadOnly:
                                    description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                      recursively.


                                      If ReadOnly is false, this field has no meaning and must be unspecified.


                                      If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                      recursively read-only.  If this field is set to IfPossible, the mount is made

                                      recursively read-only, if it is supported by the container runtime.  If this

                                      field is set to Enabled, the mount is made recursively read-only if it is

                                      supported by the container runtime, otherwise the pod will not be started and

                                      an error will be generated to indicate the reason.


                                      If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                      None (or be unspecified, which defaults to None).


                                      If this field is not specified, it is treated as an equivalent of Disabled.'
                                    type: string
                                  subPath:
                                    description: 'Path within the volume from which the container''s volume should be mounted.

                                      Defaults to "" (volume''s root).'
                                    type: string
                                  subPathExpr:
                                    description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                      Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                      Defaults to "" (volume''s root).

                                      SubPathExpr and SubPath are mutually exclusive.'
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - mountPath
                              x-kubernetes-list-type: map
                            workingDir:
                              description: 'Container''s working directory.

                                If not specified, the container runtime''s default will be used, which

                                might be configured in the container image.

                                Cannot be updated.'
                              type: string
                          type: object
                        securityContext:
                          description: 'SecurityContext holds pod-level security attributes and common container settings.

                            Optional: Defaults to empty.  See type description for default values of each field.'
                          properties:
                            appArmorProfile:
                              description: 'appArmorProfile is the AppArmor options to use by the containers in this pod.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must match the loaded name of the profile.

                                    Must be set if and only if type is "Localhost".'
                                  type: string
                                type:
                                  description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                  type: string
                              required:
                              - type
                              type: object
                            fsGroup:
                              description: 'A special supplemental group that applies to all containers in a pod.

                                Some volume types allow the Kubelet to change the ownership of that volume

                                to be owned by the pod:


                                1. The owning GID will be the FSGroup

                                2. The setgid bit is set (new files created in the volume will be owned by FSGroup)

                                3. The permission bits are OR''d with rw-rw----


                                If unset, the Kubelet will not modify the ownership and permissions of any volume.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            fsGroupChangePolicy:
                              description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume

                                before being exposed inside Pod. This field will only apply to

                                volume types which support fsGroup based ownership(and permissions).

                                It will have no effect on ephemeral volume types such as: secret, configmaps

                                and emptydir.

                                Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            runAsGroup:
                              description: 'The GID to run the entrypoint of the container process.

                                Uses runtime default if unset.

                                May also be set in SecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence

                                for that container.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            runAsNonRoot:
                              description: 'Indicates that the container must run as a non-root user.

                                If true, the Kubelet will validate the image at runtime to ensure that it

                                does not run as UID 0 (root) and fail to start the container if it does.

                                If unset or false, no such validation will be performed.

                                May also be set in SecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: boolean
                            runAsUser:
                              description: 'The UID to run the entrypoint of the container process.

                                Defaults to user specified in image metadata if unspecified.

                                May also be set in SecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence

                                for that container.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            seLinuxChangePolicy:
                              description: 'seLinuxChangePolicy defines how the container''s SELinux label is applied to all volumes used by the Pod.

                                It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.

                                Valid values are "MountOption" and "Recursive".


                                "Recursive" means relabeling of all files on all Pod volumes by the container runtime.

                                This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.


                                "MountOption" mounts all eligible Pod volumes with `-o context` mount option.

                                This requires all Pods that share the same volume to use the same SELinux label.

                                It is not possible to share the same volume among privileged and unprivileged Pods.

                                Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes

                                whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their

                                CSIDriver instance. Other volumes are always re-labelled recursively.

                                "MountOption" value is allowed only when SELinuxMount feature gate is enabled.


                                If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.

                                If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes

                                and "Recursive" for all other volumes.


                                This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.


                                All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            seLinuxOptions:
                              description: 'The SELinux context to be applied to all containers.

                                If unspecified, the container runtime will allocate a random SELinux context for each

                                container.  May also be set in SecurityContext.  If set in

                                both SecurityContext and PodSecurityContext, the value specified in SecurityContext

                                takes precedence for that container.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                level:
                                  description: Level is SELinux level label that applies to the container.
                                  type: string
                                role:
                                  description: Role is a SELinux role label that applies to the container.
                                  type: string
                                type:
                                  description: Type is a SELinux type label that applies to the container.
                                  type: string
                                user:
                                  description: User is a SELinux user label that applies to the container.
                                  type: string
                              type: object
                            seccompProfile:
                              description: 'The seccomp options to use by the containers in this pod.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                    Must be set if type is "Localhost". Must NOT be set for any other type.'
                                  type: string
                                type:
                                  description: 'type indicates which kind of seccomp profile will be applied.

                                    Valid options are:


                                    Localhost - a profile defined in a file on the node should be used.

                                    RuntimeDefault - the container runtime default profile should be used.

                                    Unconfined - no profile should be applied.'
                                  type: string
                              required:
                              - type
                              type: object
                            supplementalGroups:
                              description: 'A list of groups applied to the first process run in each container, in

                                addition to the container''s primary GID and fsGroup (if specified).  If

                                the SupplementalGroupsPolicy feature is enabled, the

                                supplementalGroupsPolicy field determines whether these are in addition

                                to or instead of any group memberships defined in the container image.

                                If unspecified, no additional groups are added, though group memberships

                                defined in the container image may still be used, depending on the

                                supplementalGroupsPolicy field.

                                Note that this field cannot be set when spec.os.name is windows.'
                              items:
                                format: int64
                                type: integer
                              type: array
                              x-kubernetes-list-type: atomic
                            supplementalGroupsPolicy:
                              description: 'Defines how supplemental groups of the first container processes are calculated.

                                Valid values are "Merge" and "Strict". If not specified, "Merge" is used.

                                (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled

                                and the container runtime must implement support for this feature.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            sysctls:
                              description: 'Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported

                                sysctls (by the container runtime) might fail to launch.

                                Note that this field cannot be set when spec.os.name is windows.'
                              items:
                                description: Sysctl defines a kernel parameter to be set
                                properties:
                                  name:
                                    description: Name of a property to set
                                    type: string
                                  value:
                                    description: Value of a property to set
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            windowsOptions:
                              description: 'The Windows specific settings applied to all containers.

                                If unspecified, the options within a container''s SecurityContext will be used.

                                If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is linux.'
                              properties:
                                gmsaCredentialSpec:
                                  description: 'GMSACredentialSpec is where the GMSA admission webhook

                                    (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                    GMSA credential spec named by the GMSACredentialSpecName field.'
                                  type: string
                                gmsaCredentialSpecName:
                                  description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                  type: string
                                hostProcess:
                                  description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                    All of a Pod''s containers must have the same effective HostProcess value

                                    (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                    In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                  type: boolean
                                runAsUserName:
                                  description: 'The UserName in Windows to run the entrypoint of the container process.

                                    Defaults to the user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext. If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: string
                              type: object
                          type: object
                        serviceAccountName:
                          description: ServiceAccountName to apply to workflow pods
                          type: string
                        sidecars:
                          description: 'Sidecars is a list of containers which run alongside the main container

                            Sidecars are automatically killed when the main container completes'
                          items:
                            description: UserContainer is a container specified by a user.
                            properties:
                              args:
                                description: 'Arguments to the entrypoint.

                                  The container image''s CMD is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              command:
                                description: 'Entrypoint array. Not executed within a shell.

                                  The container image''s ENTRYPOINT is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              env:
                                description: 'List of environment variables to set in the container.

                                  Cannot be updated.'
                                items:
                                  description: EnvVar represents an environment variable present in a Container.
                                  properties:
                                    name:
                                      description: Name of the environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    value:
                                      description: 'Variable references $(VAR_NAME) are expanded

                                        using the previously defined environment variables in the container and

                                        any service environment variables. If a variable cannot be resolved,

                                        the reference in the input string will be unchanged. Double $$ are reduced

                                        to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                        "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                        Escaped references will never be expanded, regardless of whether the variable

                                        exists or not.

                                        Defaults to "".'
                                      type: string
                                    valueFrom:
                                      description: Source for the environment variable's value. Cannot be used if value is not empty.
                                      properties:
                                        configMapKeyRef:
                                          description: Selects a key of a ConfigMap.
                                          properties:
                                            key:
                                              description: The key to select.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the ConfigMap or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        fieldRef:
                                          description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                            spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        secretKeyRef:
                                          description: Selects a key of a secret in the pod's namespace
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              envFrom:
                                description: 'List of sources to populate environment variables in the container.

                                  The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                                  will be reported as an event when the container is starting. When a key exists in multiple

                                  sources, the value associated with the last source will take precedence.

                                  Values defined by an Env with a duplicate key will take precedence.

                                  Cannot be updated.'
                                items:
                                  description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                                  properties:
                                    configMapRef:
                                      description: The ConfigMap to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    prefix:
                                      description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    secretRef:
                                      description: The Secret to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              image:
                                description: 'Container image name.

                                  More info: https://kubernetes.io/docs/concepts/containers/images

                                  This field is optional to allow higher level config management to default or override

                                  container images in workload controllers like Deployments and StatefulSets.'
                                type: string
                              imagePullPolicy:
                                description: 'Image pull policy.

                                  One of Always, Never, IfNotPresent.

                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                                type: string
                              lifecycle:
                                description: 'Actions that the management system should take in response to container lifecycle events.

                                  Cannot be updated.'
                                properties:
                                  postStart:
                                    description: 'PostStart is called immediately after a container is created. If the handler fails,

                                      the container is terminated and restarted according to its restart policy.

                                      Other management of the container blocks until the hook completes.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  preStop:
                                    description: 'PreStop is called immediately before a container is terminated due to an

                                      API request or management event such as liveness/startup probe failure,

                                      preemption, resource contention, etc. The handler is not called if the

                                      container crashes or exits. The Pod''s termination grace period countdown begins before the

                                      PreStop hook is executed. Regardless of the outcome of the handler, the

                                      container will eventually terminate within the Pod''s termination grace

                                      period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                      or until the termination grace period is reached.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  stopSignal:
                                    description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                      If not specified, the default is defined by the container runtime in use.

                                      StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                    type: string
                                type: object
                              livenessProbe:
                                description: 'Periodic probe of container liveness.

                                  Container will be restarted if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              mirrorVolumeMounts:
                                description: 'MirrorVolumeMounts will mount the same volumes specified in the main container

                                  to the container (including artifacts), at the same mountPaths. This enables

                                  dind daemon to partially see the same filesystem as the main container in

                                  order to use features such as docker volume binding'
                                type: boolean
                              name:
                                description: 'Name of the container specified as a DNS_LABEL.

                                  Each container in a pod must have a unique name (DNS_LABEL).

                                  Cannot be updated.'
                                type: string
                              ports:
                                description: 'List of ports to expose from the container. Not specifying a port here

                                  DOES NOT prevent that port from being exposed. Any port which is

                                  listening on the default "0.0.0.0" address inside a container will be

                                  accessible from the network.

                                  Modifying this array with strategic merge patch may corrupt the data.

                                  For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                                  Cannot be updated.'
                                items:
                                  description: ContainerPort represents a network port in a single container.
                                  properties:
                                    containerPort:
                                      description: 'Number of port to expose on the pod''s IP address.

                                        This must be a valid port number, 0 < x < 65536.'
                                      format: int32
                                      type: integer
                                    hostIP:
                                      description: What host IP to bind the external port to.
                                      type: string
                                    hostPort:
                                      description: 'Number of port to expose on the host.

                                        If specified, this must be a valid port number, 0 < x < 65536.

                                        If HostNetwork is specified, this must match ContainerPort.

                                        Most containers do not need this.'
                                      format: int32
                                      type: integer
                                    name:
                                      description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                        named port in a pod must have a unique name. Name for the port that can be

                                        referred to by services.'
                                      type: string
                                    protocol:
                                      default: TCP
                                      description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                        Defaults to "TCP".'
                                      type: string
                                  required:
                                  - containerPort
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - containerPort
                                - protocol
                                x-kubernetes-list-type: map
                              readinessProbe:
                                description: 'Periodic probe of container service readiness.

                                  Container will be removed from service endpoints if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              resizePolicy:
                                description: Resources resize policy for the container.
                                items:
                                  description: ContainerResizePolicy represents resource resize policy for the container.
                                  properties:
                                    resourceName:
                                      description: 'Name of the resource to which this resource resize policy applies.

                                        Supported values: cpu, memory.'
                                      type: string
                                    restartPolicy:
                                      description: 'Restart policy to apply when specified resource is resized.

                                        If not specified, it defaults to NotRequired.'
                                      type: string
                                  required:
                                  - resourceName
                                  - restartPolicy
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              resources:
                                description: 'Compute Resources required by this container.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                properties:
                                  claims:
                                    description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                      that are used by this container.


                                      This is an alpha field and requires enabling the

                                      DynamicResourceAllocation feature gate.


                                      This field is immutable. It can only be set for containers.'
                                    items:
                                      description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                      properties:
                                        name:
                                          description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                            the Pod where this field is used. It makes that resource available

                                            inside a container.'
                                          type: string
                                        request:
                                          description: 'Request is the name chosen for a request in the referenced claim.

                                            If empty, everything from the claim is made available, otherwise

                                            only the result of this request.'
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - name
                                    x-kubernetes-list-type: map
                                  limits:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Limits describes the maximum amount of compute resources allowed.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                  requests:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Requests describes the minimum amount of compute resources required.

                                      If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                      otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                type: object
                              restartPolicy:
                                description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                                  This field may only be set for init containers, and the only allowed value is "Always".

                                  For non-init containers or when this field is not specified,

                                  the restart behavior is defined by the Pod''s restart policy and the container type.

                                  Setting the RestartPolicy as "Always" for the init container will have the following effect:

                                  this init container will be continually restarted on

                                  exit until all regular containers have terminated. Once all regular

                                  containers have completed, all init containers with restartPolicy "Always"

                                  will be shut down. This lifecycle differs from normal init containers and

                                  is often referred to as a "sidecar" container. Although this init

                                  container still starts in the init container sequence, it does not wait

                                  for the container to complete before proceeding to the next init

                                  container. Instead, the next init container starts immediately after this

                                  init container is started, or after any startupProbe has successfully

                                  completed.'
                                type: string
                              securityContext:
                                description: 'SecurityContext defines the security options the container should be run with.

                                  If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                                  More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                                properties:
                                  allowPrivilegeEscalation:
                                    description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                      privileges than its parent process. This bool directly controls if

                                      the no_new_privs flag will be set on the container process.

                                      AllowPrivilegeEscalation is true always when the container is:

                                      1) run as Privileged

                                      2) has CAP_SYS_ADMIN

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  appArmorProfile:
                                    description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                      overrides the pod''s appArmorProfile.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must match the loaded name of the profile.

                                          Must be set if and only if type is "Localhost".'
                                        type: string
                                      type:
                                        description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  capabilities:
                                    description: 'The capabilities to add/drop when running containers.

                                      Defaults to the default set of capabilities granted by the container runtime.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      add:
                                        description: Added capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      drop:
                                        description: Removed capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  privileged:
                                    description: 'Run container in privileged mode.

                                      Processes in privileged containers are essentially equivalent to root on the host.

                                      Defaults to false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  procMount:
                                    description: 'procMount denotes the type of proc mount to use for the containers.

                                      The default value is Default which uses the container runtime defaults for

                                      readonly paths and masked paths.

                                      This requires the ProcMountType feature flag to be enabled.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: string
                                  readOnlyRootFilesystem:
                                    description: 'Whether this container has a read-only root filesystem.

                                      Default is false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  runAsGroup:
                                    description: 'The GID to run the entrypoint of the container process.

                                      Uses runtime default if unset.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  runAsNonRoot:
                                    description: 'Indicates that the container must run as a non-root user.

                                      If true, the Kubelet will validate the image at runtime to ensure that it

                                      does not run as UID 0 (root) and fail to start the container if it does.

                                      If unset or false, no such validation will be performed.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: boolean
                                  runAsUser:
                                    description: 'The UID to run the entrypoint of the container process.

                                      Defaults to user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  seLinuxOptions:
                                    description: 'The SELinux context to be applied to the container.

                                      If unspecified, the container runtime will allocate a random SELinux context for each

                                      container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      level:
                                        description: Level is SELinux level label that applies to the container.
                                        type: string
                                      role:
                                        description: Role is a SELinux role label that applies to the container.
                                        type: string
                                      type:
                                        description: Type is a SELinux type label that applies to the container.
                                        type: string
                                      user:
                                        description: User is a SELinux user label that applies to the container.
                                        type: string
                                    type: object
                                  seccompProfile:
                                    description: 'The seccomp options to use by this container. If seccomp options are

                                      provided at both the pod & container level, the container options

                                      override the pod options.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                          Must be set if type is "Localhost". Must NOT be set for any other type.'
                                        type: string
                                      type:
                                        description: 'type indicates which kind of seccomp profile will be applied.

                                          Valid options are:


                                          Localhost - a profile defined in a file on the node should be used.

                                          RuntimeDefault - the container runtime default profile should be used.

                                          Unconfined - no profile should be applied.'
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  windowsOptions:
                                    description: 'The Windows specific settings applied to all containers.

                                      If unspecified, the options from the PodSecurityContext will be used.

                                      If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is linux.'
                                    properties:
                                      gmsaCredentialSpec:
                                        description: 'GMSACredentialSpec is where the GMSA admission webhook

                                          (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                          GMSA credential spec named by the GMSACredentialSpecName field.'
                                        type: string
                                      gmsaCredentialSpecName:
                                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                        type: string
                                      hostProcess:
                                        description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                          All of a Pod''s containers must have the same effective HostProcess value

                                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                          In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                        type: boolean
                                      runAsUserName:
                                        description: 'The UserName in Windows to run the entrypoint of the container process.

                                          Defaults to the user specified in image metadata if unspecified.

                                          May also be set in PodSecurityContext. If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                        type: string
                                    type: object
                                type: object
                              startupProbe:
                                description: 'StartupProbe indicates that the Pod has successfully initialized.

                                  If specified, no other probes are executed until this completes successfully.

                                  If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                                  This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                                  when it might take a long time to load data or warm a cache, than during steady-state operation.

                                  This cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              stdin:
                                description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                                  is not set, reads from stdin in the container will always result in EOF.

                                  Default is false.'
                                type: boolean
                              stdinOnce:
                                description: 'Whether the container runtime should close the stdin channel after it has been opened by

                                  a single attach. When stdin is true the stdin stream will remain open across multiple attach

                                  sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                                  first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                                  at which time stdin is closed and remains closed until the container is restarted. If this

                                  flag is false, a container processes that reads from stdin will never receive an EOF.

                                  Default is false'
                                type: boolean
                              terminationMessagePath:
                                description: 'Optional: Path at which the file to which the container''s termination message

                                  will be written is mounted into the container''s filesystem.

                                  Message written is intended to be brief final status, such as an assertion failure message.

                                  Will be truncated by the node if greater than 4096 bytes. The total message length across

                                  all containers will be limited to 12kb.

                                  Defaults to /dev/termination-log.

                                  Cannot be updated.'
                                type: string
                              terminationMessagePolicy:
                                description: 'Indicate how the termination message should be populated. File will use the contents of

                                  terminationMessagePath to populate the container status message on both success and failure.

                                  FallbackToLogsOnError will use the last chunk of container log output if the termination

                                  message file is empty and the container exited with an error.

                                  The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                                  Defaults to File.

                                  Cannot be updated.'
                                type: string
                              tty:
                                description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                                  Default is false.'
                                type: boolean
                              volumeDevices:
                                description: volumeDevices is the list of block devices to be used by the container.
                                items:
                                  description: volumeDevice describes a mapping of a raw block device within a container.
                                  properties:
                                    devicePath:
                                      description: devicePath is the path inside of the container that the device will be mapped to.
                                      type: string
                                    name:
                                      description: name must match the name of a persistentVolumeClaim in the pod
                                      type: string
                                  required:
                                  - devicePath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - devicePath
                                x-kubernetes-list-type: map
                              volumeMounts:
                                description: 'Pod volumes to mount into the container''s filesystem.

                                  Cannot be updated.'
                                items:
                                  description: VolumeMount describes a mounting of a Volume within a container.
                                  properties:
                                    mountPath:
                                      description: 'Path within the container at which the volume should be mounted.  Must

                                        not contain '':''.'
                                      type: string
                                    mountPropagation:
                                      description: 'mountPropagation determines how mounts are propagated from the host

                                        to container and the other way around.

                                        When not set, MountPropagationNone is used.

                                        This field is beta in 1.10.

                                        When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                        (which defaults to None).'
                                      type: string
                                    name:
                                      description: This must match the Name of a Volume.
                                      type: string
                                    readOnly:
                                      description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                        Defaults to false.'
                                      type: boolean
                                    recursiveReadOnly:
                                      description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                        recursively.


                                        If ReadOnly is false, this field has no meaning and must be unspecified.


                                        If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                        recursively read-only.  If this field is set to IfPossible, the mount is made

                                        recursively read-only, if it is supported by the container runtime.  If this

                                        field is set to Enabled, the mount is made recursively read-only if it is

                                        supported by the container runtime, otherwise the pod will not be started and

                                        an error will be generated to indicate the reason.


                                        If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                        None (or be unspecified, which defaults to None).


                                        If this field is not specified, it is treated as an equivalent of Disabled.'
                                      type: string
                                    subPath:
                                      description: 'Path within the volume from which the container''s volume should be mounted.

                                        Defaults to "" (volume''s root).'
                                      type: string
                                    subPathExpr:
                                      description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                        Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                        Defaults to "" (volume''s root).

                                        SubPathExpr and SubPath are mutually exclusive.'
                                      type: string
                                  required:
                                  - mountPath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - mountPath
                                x-kubernetes-list-type: map
                              workingDir:
                                description: 'Container''s working directory.

                                  If not specified, the container runtime''s default will be used, which

                                  might be configured in the container image.

                                  Cannot be updated.'
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        steps:
                          description: Steps define a series of sequential/parallel workflow steps
                          items:
                            description: 'Note: the `json:"steps"` part exists to workaround kubebuilder limitations.

                              There isn''t actually a "steps" key in the JSON serialization; this is an anonymous list.

                              See the custom Unmarshaller below and ./hack/manifests/crd.go'
                            items:
                              description: 'WorkflowStep is a reference to a template to execute in a series of step

                                Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.'
                              properties:
                                arguments:
                                  description: Arguments hold arguments to the template
                                  properties:
                                    artifacts:
                                      description: Artifacts is the list of artifacts to pass to the template or workflow
                                      items:
                                        description: Artifact indicates an artifact to place at a specified path
                                        properties:
                                          archive:
                                            description: Archive controls how the artifact will be saved to the artifact repository.
                                            properties:
                                              none:
                                                description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                  files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                  save/load the directory appropriately.'
                                                type: object
                                              tar:
                                                description: TarStrategy will tar and gzip the file or directory when saving
                                                properties:
                                                  compressionLevel:
                                                    description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                      Defaults to gzip.DefaultCompression.'
                                                    format: int32
                                                    type: integer
                                                type: object
                                              zip:
                                                description: ZipStrategy will unzip zipped input artifacts
                                                type: object
                                            type: object
                                          archiveLogs:
                                            description: ArchiveLogs indicates if the container logs should be archived
                                            type: boolean
                                          artifactGC:
                                            description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                            properties:
                                              podMetadata:
                                                description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                properties:
                                                  annotations:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                  labels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                              serviceAccountName:
                                                description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                type: string
                                              strategy:
                                                description: Strategy is the strategy to use.
                                                enum:
                                                - ''
                                                - OnWorkflowCompletion
                                                - OnWorkflowDeletion
                                                - Never
                                                type: string
                                            type: object
                                          artifactory:
                                            description: Artifactory contains artifactory artifact location details
                                            properties:
                                              passwordSecret:
                                                description: PasswordSecret is the secret selector to the repository password
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              url:
                                                description: URL of the artifact
                                                type: string
                                              usernameSecret:
                                                description: UsernameSecret is the secret selector to the repository username
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - url
                                            type: object
                                          azure:
                                            description: Azure contains Azure Storage artifact location details
                                            properties:
                                              accountKeySecret:
                                                description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              blob:
                                                description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                type: string
                                              container:
                                                description: Container is the container where resources will be stored
                                                type: string
                                              endpoint:
                                                description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                type: string
                                              useSDKCreds:
                                                description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                type: boolean
                                            required:
                                            - blob
                                            - container
                                            - endpoint
                                            type: object
                                          deleted:
                                            description: Has this been deleted?
                                            type: boolean
                                          from:
                                            description: From allows an artifact to reference an artifact from a previous step
                                            type: string
                                          fromExpression:
                                            description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                            type: string
                                          gcs:
                                            description: GCS contains GCS artifact location details
                                            properties:
                                              bucket:
                                                description: Bucket is the name of the bucket
                                                type: string
                                              key:
                                                description: Key is the path in the bucket where the artifact resides
                                                type: string
                                              serviceAccountKeySecret:
                                                description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - key
                                            type: object
                                          git:
                                            description: Git contains git artifact location details
                                            properties:
                                              branch:
                                                description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                type: string
                                              depth:
                                                description: 'Depth specifies clones/fetches should be shallow and include the given

                                                  number of commits from the branch tip'
                                                format: int64
                                                type: integer
                                              disableSubmodules:
                                                description: DisableSubmodules disables submodules during git clone
                                                type: boolean
                                              fetch:
                                                description: Fetch specifies a number of refs that should be fetched before checkout
                                                items:
                                                  type: string
                                                type: array
                                              insecureIgnoreHostKey:
                                                description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                type: boolean
                                              insecureSkipTLS:
                                                description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                type: boolean
                                              passwordSecret:
                                                description: PasswordSecret is the secret selector to the repository password
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              repo:
                                                description: Repo is the git repository
                                                type: string
                                              revision:
                                                description: Revision is the git commit, tag, branch to checkout
                                                type: string
                                              singleBranch:
                                                description: SingleBranch enables single branch clone, using the `branch` parameter
                                                type: boolean
                                              sshPrivateKeySecret:
                                                description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                description: UsernameSecret is the secret selector to the repository username
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - repo
                                            type: object
                                          globalName:
                                            description: 'GlobalName exports an output artifact to the global scope, making it available as

                                              ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                            type: string
                                          hdfs:
                                            description: HDFS contains HDFS artifact location details
                                            properties:
                                              addresses:
                                                description: Addresses is accessible addresses of HDFS name nodes
                                                items:
                                                  type: string
                                                type: array
                                              dataTransferProtection:
                                                description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                  It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                type: string
                                              force:
                                                description: Force copies a file forcibly even if it exists
                                                type: boolean
                                              hdfsUser:
                                                description: 'HDFSUser is the user to access HDFS file system.

                                                  It is ignored if either ccache or keytab is used.'
                                                type: string
                                              krbCCacheSecret:
                                                description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                  Either ccache or keytab can be set to use Kerberos.'
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbConfigConfigMap:
                                                description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                  It must be set if either ccache or keytab is used.'
                                                properties:
                                                  key:
                                                    description: The key to select.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the ConfigMap or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbKeytabSecret:
                                                description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                  Either ccache or keytab can be set to use Kerberos.'
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbRealm:
                                                description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                  It must be set if keytab is used.'
                                                type: string
                                              krbServicePrincipalName:
                                                description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                  It must be set if either ccache or keytab is used.'
                                                type: string
                                              krbUsername:
                                                description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                  It must be set if keytab is used.'
                                                type: string
                                              path:
                                                description: Path is a file path in HDFS
                                                type: string
                                            required:
                                            - path
                                            type: object
                                          http:
                                            description: HTTP contains HTTP artifact location details
                                            properties:
                                              auth:
                                                description: Auth contains information for client authentication
                                                properties:
                                                  basicAuth:
                                                    description: BasicAuth describes the secret selectors required for basic authentication
                                                    properties:
                                                      passwordSecret:
                                                        description: PasswordSecret is the secret selector to the repository password
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      usernameSecret:
                                                        description: UsernameSecret is the secret selector to the repository username
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  clientCert:
                                                    description: ClientCertAuth holds necessary information for client authentication via certificates
                                                    properties:
                                                      clientCertSecret:
                                                        description: SecretKeySelector selects a key of a Secret.
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientKeySecret:
                                                        description: SecretKeySelector selects a key of a Secret.
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  oauth2:
                                                    description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                    properties:
                                                      clientIDSecret:
                                                        description: SecretKeySelector selects a key of a Secret.
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientSecretSecret:
                                                        description: SecretKeySelector selects a key of a Secret.
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      endpointParams:
                                                        items:
                                                          description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                          properties:
                                                            key:
                                                              description: Name is the header name
                                                              type: string
                                                            value:
                                                              description: Value is the literal value to use for the header
                                                              type: string
                                                          required:
                                                          - key
                                                          type: object
                                                        type: array
                                                      scopes:
                                                        items:
                                                          type: string
                                                        type: array
                                                      tokenURLSecret:
                                                        description: SecretKeySelector selects a key of a Secret.
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                type: object
                                              headers:
                                                description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                items:
                                                  description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                  properties:
                                                    name:
                                                      description: Name is the header name
                                                      type: string
                                                    value:
                                                      description: Value is the literal value to use for the header
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              url:
                                                description: URL of the artifact
                                                type: string
                                            required:
                                            - url
                                            type: object
                                          mode:
                                            description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                              Set when loading input artifacts. It is recommended to set the mode value

                                              to ensure the artifact has the expected permissions in your container.'
                                            format: int32
                                            maximum: 511
                                            minimum: 0
                                            type: integer
                                          name:
                                            description: name of the artifact. must be unique within a template's inputs/outputs.
                                            pattern: ^[-a-zA-Z0-9_{}.]+$
                                            type: string
                                          optional:
                                            description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                            type: boolean
                                          oss:
                                            description: OSS contains OSS artifact location details
                                            properties:
                                              accessKeySecret:
                                                description: AccessKeySecret is the secret selector to the bucket's access key
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                description: Bucket is the name of the bucket
                                                type: string
                                              createBucketIfNotPresent:
                                                description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                type: boolean
                                              endpoint:
                                                description: Endpoint is the hostname of the bucket endpoint
                                                type: string
                                              key:
                                                description: Key is the path in the bucket where the artifact resides
                                                type: string
                                              lifecycleRule:
                                                description: LifecycleRule specifies how to manage bucket's lifecycle
                                                properties:
                                                  markDeletionAfterDays:
                                                    description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                    format: int32
                                                    type: integer
                                                  markInfrequentAccessAfterDays:
                                                    description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                    format: int32
                                                    type: integer
                                                type: object
                                              secretKeySecret:
                                                description: SecretKeySecret is the secret selector to the bucket's secret key
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              securityToken:
                                                description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                type: string
                                              useSDKCreds:
                                                description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                          path:
                                            description: Path is the container path to the artifact
                                            type: string
                                          plugin:
                                            description: Plugin contains plugin artifact location details
                                            properties:
                                              configuration:
                                                description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                type: string
                                              connectionTimeoutSeconds:
                                                description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                format: int32
                                                type: integer
                                              key:
                                                description: Key is the path in the artifact repository where the artifact resides
                                                type: string
                                              name:
                                                description: Name is the name of the artifact driver plugin
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          raw:
                                            description: Raw contains raw artifact location details
                                            properties:
                                              data:
                                                description: Data is the string contents of the artifact
                                                type: string
                                            required:
                                            - data
                                            type: object
                                          recurseMode:
                                            description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                            type: boolean
                                          s3:
                                            description: S3 contains S3 artifact location details
                                            properties:
                                              accessKeySecret:
                                                description: AccessKeySecret is the secret selector to the bucket's access key
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                description: Bucket is the name of the bucket
                                                type: string
                                              caSecret:
                                                description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              createBucketIfNotPresent:
                                                description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                properties:
                                                  objectLocking:
                                                    description: ObjectLocking Enable object locking
                                                    type: boolean
                                                type: object
                                              encryptionOptions:
                                                description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                properties:
                                                  enableEncryption:
                                                    description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                    type: boolean
                                                  kmsEncryptionContext:
                                                    description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                    type: string
                                                  kmsKeyId:
                                                    description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                    type: string
                                                  serverSideCustomerKeySecret:
                                                    description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              endpoint:
                                                description: Endpoint is the hostname of the bucket endpoint
                                                type: string
                                              insecure:
                                                description: Insecure will connect to the service with TLS
                                                type: boolean
                                              key:
                                                description: Key is the key in the bucket where the artifact resides
                                                type: string
                                              region:
                                                description: Region contains the optional bucket region
                                                type: string
                                              roleARN:
                                                description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                type: string
                                              secretKeySecret:
                                                description: SecretKeySecret is the secret selector to the bucket's secret key
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              sessionTokenSecret:
                                                description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              useSDKCreds:
                                                description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                type: boolean
                                            type: object
                                          subPath:
                                            description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                            type: string
                                        required:
                                        - name
                                        type: object
                                        x-kubernetes-validations:
                                        - message: at most one artifact location can be specified
                                          rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                      type: array
                                    parameters:
                                      description: Parameters is the list of parameters to pass to the template or workflow
                                      items:
                                        description: Parameter indicate a passed string parameter to a service template with an optional default value
                                        properties:
                                          default:
                                            description: Default is the default value to use for an input parameter if a value was not supplied
                                            type: string
                                          description:
                                            description: Description is the parameter description
                                            type: string
                                          enum:
                                            description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                            items:
                                              description: '* It''s JSON type is just string.

                                                * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                * It will marshall back to string - marshalling is not symmetric.'
                                              type: string
                                            minItems: 1
                                            type: array
                                          globalName:
                                            description: 'GlobalName exports an output parameter to the global scope, making it available as

                                              ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                            type: string
                                          name:
                                            description: Name is the parameter name
                                            pattern: ^[-a-zA-Z0-9_]+$
                                            type: string
                                          value:
                                            description: 'Value is the literal value to use for the parameter.

                                              If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                            type: string
                                          valueFrom:
                                            description: ValueFrom is the source for the output parameter's value
                                            properties:
                                              configMapKeyRef:
                                                description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                properties:
                                                  key:
                                                    description: The key to select.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the ConfigMap or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              default:
                                                description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                type: string
                                              event:
                                                description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                type: string
                                              expression:
                                                description: Expression, if defined, is evaluated to specify the value for the parameter
                                                type: string
                                              jqFilter:
                                                description: JQFilter expression against the resource object in resource templates
                                                type: string
                                              jsonPath:
                                                description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                type: string
                                              parameter:
                                                description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                  (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                type: string
                                              path:
                                                description: Path in the container to retrieve an output parameter value from in container templates
                                                type: string
                                              supplied:
                                                description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                type: object
                                            type: object
                                        required:
                                        - name
                                        type: object
                                      type: array
                                  type: object
                                continueOn:
                                  description: 'ContinueOn makes argo to proceed with the following step even if this step fails.

                                    Errors and Failed states can be specified'
                                  properties:
                                    error:
                                      type: boolean
                                    failed:
                                      type: boolean
                                  type: object
                                hooks:
                                  additionalProperties:
                                    properties:
                                      arguments:
                                        description: Arguments hold arguments to the template
                                        properties:
                                          artifacts:
                                            description: Artifacts is the list of artifacts to pass to the template or workflow
                                            items:
                                              description: Artifact indicates an artifact to place at a specified path
                                              properties:
                                                archive:
                                                  description: Archive controls how the artifact will be saved to the artifact repository.
                                                  properties:
                                                    none:
                                                      description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                        files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                        save/load the directory appropriately.'
                                                      type: object
                                                    tar:
                                                      description: TarStrategy will tar and gzip the file or directory when saving
                                                      properties:
                                                        compressionLevel:
                                                          description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                            Defaults to gzip.DefaultCompression.'
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    zip:
                                                      description: ZipStrategy will unzip zipped input artifacts
                                                      type: object
                                                  type: object
                                                archiveLogs:
                                                  description: ArchiveLogs indicates if the container logs should be archived
                                                  type: boolean
                                                artifactGC:
                                                  description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                                  properties:
                                                    podMetadata:
                                                      description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                      properties:
                                                        annotations:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        labels:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    serviceAccountName:
                                                      description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                      type: string
                                                    strategy:
                                                      description: Strategy is the strategy to use.
                                                      enum:
                                                      - ''
                                                      - OnWorkflowCompletion
                                                      - OnWorkflowDeletion
                                                      - Never
                                                      type: string
                                                  type: object
                                                artifactory:
                                                  description: Artifactory contains artifactory artifact location details
                                                  properties:
                                                    passwordSecret:
                                                      description: PasswordSecret is the secret selector to the repository password
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    url:
                                                      description: URL of the artifact
                                                      type: string
                                                    usernameSecret:
                                                      description: UsernameSecret is the secret selector to the repository username
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - url
                                                  type: object
                                                azure:
                                                  description: Azure contains Azure Storage artifact location details
                                                  properties:
                                                    accountKeySecret:
                                                      description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    blob:
                                                      description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                      type: string
                                                    container:
                                                      description: Container is the container where resources will be stored
                                                      type: string
                                                    endpoint:
                                                      description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                      type: string
                                                    useSDKCreds:
                                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                      type: boolean
                                                  required:
                                                  - blob
                                                  - container
                                                  - endpoint
                                                  type: object
                                                deleted:
                                                  description: Has this been deleted?
                                                  type: boolean
                                                from:
                                                  description: From allows an artifact to reference an artifact from a previous step
                                                  type: string
                                                fromExpression:
                                                  description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                                  type: string
                                                gcs:
                                                  description: GCS contains GCS artifact location details
                                                  properties:
                                                    bucket:
                                                      description: Bucket is the name of the bucket
                                                      type: string
                                                    key:
                                                      description: Key is the path in the bucket where the artifact resides
                                                      type: string
                                                    serviceAccountKeySecret:
                                                      description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - key
                                                  type: object
                                                git:
                                                  description: Git contains git artifact location details
                                                  properties:
                                                    branch:
                                                      description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                      type: string
                                                    depth:
                                                      description: 'Depth specifies clones/fetches should be shallow and include the given

                                                        number of commits from the branch tip'
                                                      format: int64
                                                      type: integer
                                                    disableSubmodules:
                                                      description: DisableSubmodules disables submodules during git clone
                                                      type: boolean
                                                    fetch:
                                                      description: Fetch specifies a number of refs that should be fetched before checkout
                                                      items:
                                                        type: string
                                                      type: array
                                                    insecureIgnoreHostKey:
                                                      description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                      type: boolean
                                                    insecureSkipTLS:
                                                      description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                      type: boolean
                                                    passwordSecret:
                                                      description: PasswordSecret is the secret selector to the repository password
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    repo:
                                                      description: Repo is the git repository
                                                      type: string
                                                    revision:
                                                      description: Revision is the git commit, tag, branch to checkout
                                                      type: string
                                                    singleBranch:
                                                      description: SingleBranch enables single branch clone, using the `branch` parameter
                                                      type: boolean
                                                    sshPrivateKeySecret:
                                                      description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    usernameSecret:
                                                      description: UsernameSecret is the secret selector to the repository username
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - repo
                                                  type: object
                                                globalName:
                                                  description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                    ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                                  type: string
                                                hdfs:
                                                  description: HDFS contains HDFS artifact location details
                                                  properties:
                                                    addresses:
                                                      description: Addresses is accessible addresses of HDFS name nodes
                                                      items:
                                                        type: string
                                                      type: array
                                                    dataTransferProtection:
                                                      description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                        It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                      type: string
                                                    force:
                                                      description: Force copies a file forcibly even if it exists
                                                      type: boolean
                                                    hdfsUser:
                                                      description: 'HDFSUser is the user to access HDFS file system.

                                                        It is ignored if either ccache or keytab is used.'
                                                      type: string
                                                    krbCCacheSecret:
                                                      description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                        Either ccache or keytab can be set to use Kerberos.'
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbConfigConfigMap:
                                                      description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                        It must be set if either ccache or keytab is used.'
                                                      properties:
                                                        key:
                                                          description: The key to select.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the ConfigMap or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbKeytabSecret:
                                                      description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                        Either ccache or keytab can be set to use Kerberos.'
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbRealm:
                                                      description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                        It must be set if keytab is used.'
                                                      type: string
                                                    krbServicePrincipalName:
                                                      description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                        It must be set if either ccache or keytab is used.'
                                                      type: string
                                                    krbUsername:
                                                      description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                        It must be set if keytab is used.'
                                                      type: string
                                                    path:
                                                      description: Path is a file path in HDFS
                                                      type: string
                                                  required:
                                                  - path
                                                  type: object
                                                http:
                                                  description: HTTP contains HTTP artifact location details
                                                  properties:
                                                    auth:
                                                      description: Auth contains information for client authentication
                                                      properties:
                                                        basicAuth:
                                                          description: BasicAuth describes the secret selectors required for basic authentication
                                                          properties:
                                                            passwordSecret:
                                                              description: PasswordSecret is the secret selector to the repository password
                                                              properties:
                                                                key:
                                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  description: 'Name of the referent.

                                                                    This field is effectively required, but due to backwards compatibility is

                                                                    allowed to be empty. Instances of this type with an empty value here are

                                                                    almost certainly wrong.

                                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                  type: string
                                                                optional:
                                                                  description: Specify whether the Secret or its key must be defined
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            usernameSecret:
                                                              description: UsernameSecret is the secret selector to the repository username
                                                              properties:
                                                                key:
                                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  description: 'Name of the referent.

                                                                    This field is effectively required, but due to backwards compatibility is

                                                                    allowed to be empty. Instances of this type with an empty value here are

                                                                    almost certainly wrong.

                                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                  type: string
                                                                optional:
                                                                  description: Specify whether the Secret or its key must be defined
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                        clientCert:
                                                          description: ClientCertAuth holds necessary information for client authentication via certificates
                                                          properties:
                                                            clientCertSecret:
                                                              description: SecretKeySelector selects a key of a Secret.
                                                              properties:
                                                                key:
                                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  description: 'Name of the referent.

                                                                    This field is effectively required, but due to backwards compatibility is

                                                                    allowed to be empty. Instances of this type with an empty value here are

                                                                    almost certainly wrong.

                                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                  type: string
                                                                optional:
                                                                  description: Specify whether the Secret or its key must be defined
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            clientKeySecret:
                                                              description: SecretKeySelector selects a key of a Secret.
                                                              properties:
                                                                key:
                                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  description: 'Name of the referent.

                                                                    This field is effectively required, but due to backwards compatibility is

                                                                    allowed to be empty. Instances of this type with an empty value here are

                                                                    almost certainly wrong.

                                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                  type: string
                                                                optional:
                                                                  description: Specify whether the Secret or its key must be defined
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                        oauth2:
                                                          description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                          properties:
                                                            clientIDSecret:
                                                              description: SecretKeySelector selects a key of a Secret.
                                                              properties:
                                                                key:
                                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  description: 'Name of the referent.

                                                                    This field is effectively required, but due to backwards compatibility is

                                                                    allowed to be empty. Instances of this type with an empty value here are

                                                                    almost certainly wrong.

                                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                  type: string
                                                                optional:
                                                                  description: Specify whether the Secret or its key must be defined
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            clientSecretSecret:
                                                              description: SecretKeySelector selects a key of a Secret.
                                                              properties:
                                                                key:
                                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  description: 'Name of the referent.

                                                                    This field is effectively required, but due to backwards compatibility is

                                                                    allowed to be empty. Instances of this type with an empty value here are

                                                                    almost certainly wrong.

                                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                  type: string
                                                                optional:
                                                                  description: Specify whether the Secret or its key must be defined
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            endpointParams:
                                                              items:
                                                                description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                                properties:
                                                                  key:
                                                                    description: Name is the header name
                                                                    type: string
                                                                  value:
                                                                    description: Value is the literal value to use for the header
                                                                    type: string
                                                                required:
                                                                - key
                                                                type: object
                                                              type: array
                                                            scopes:
                                                              items:
                                                                type: string
                                                              type: array
                                                            tokenURLSecret:
                                                              description: SecretKeySelector selects a key of a Secret.
                                                              properties:
                                                                key:
                                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  description: 'Name of the referent.

                                                                    This field is effectively required, but due to backwards compatibility is

                                                                    allowed to be empty. Instances of this type with an empty value here are

                                                                    almost certainly wrong.

                                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                  type: string
                                                                optional:
                                                                  description: Specify whether the Secret or its key must be defined
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                      type: object
                                                    headers:
                                                      description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                      items:
                                                        description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                        properties:
                                                          name:
                                                            description: Name is the header name
                                                            type: string
                                                          value:
                                                            description: Value is the literal value to use for the header
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    url:
                                                      description: URL of the artifact
                                                      type: string
                                                  required:
                                                  - url
                                                  type: object
                                                mode:
                                                  description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                    Set when loading input artifacts. It is recommended to set the mode value

                                                    to ensure the artifact has the expected permissions in your container.'
                                                  format: int32
                                                  maximum: 511
                                                  minimum: 0
                                                  type: integer
                                                name:
                                                  description: name of the artifact. must be unique within a template's inputs/outputs.
                                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                                  type: string
                                                optional:
                                                  description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                                  type: boolean
                                                oss:
                                                  description: OSS contains OSS artifact location details
                                                  properties:
                                                    accessKeySecret:
                                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    bucket:
                                                      description: Bucket is the name of the bucket
                                                      type: string
                                                    createBucketIfNotPresent:
                                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                      type: boolean
                                                    endpoint:
                                                      description: Endpoint is the hostname of the bucket endpoint
                                                      type: string
                                                    key:
                                                      description: Key is the path in the bucket where the artifact resides
                                                      type: string
                                                    lifecycleRule:
                                                      description: LifecycleRule specifies how to manage bucket's lifecycle
                                                      properties:
                                                        markDeletionAfterDays:
                                                          description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                          format: int32
                                                          type: integer
                                                        markInfrequentAccessAfterDays:
                                                          description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    secretKeySecret:
                                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    securityToken:
                                                      description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                      type: string
                                                    useSDKCreds:
                                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                path:
                                                  description: Path is the container path to the artifact
                                                  type: string
                                                plugin:
                                                  description: Plugin contains plugin artifact location details
                                                  properties:
                                                    configuration:
                                                      description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                      type: string
                                                    connectionTimeoutSeconds:
                                                      description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                      format: int32
                                                      type: integer
                                                    key:
                                                      description: Key is the path in the artifact repository where the artifact resides
                                                      type: string
                                                    name:
                                                      description: Name is the name of the artifact driver plugin
                                                      type: string
                                                  required:
                                                  - key
                                                  type: object
                                                raw:
                                                  description: Raw contains raw artifact location details
                                                  properties:
                                                    data:
                                                      description: Data is the string contents of the artifact
                                                      type: string
                                                  required:
                                                  - data
                                                  type: object
                                                recurseMode:
                                                  description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                                  type: boolean
                                                s3:
                                                  description: S3 contains S3 artifact location details
                                                  properties:
                                                    accessKeySecret:
                                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    bucket:
                                                      description: Bucket is the name of the bucket
                                                      type: string
                                                    caSecret:
                                                      description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    createBucketIfNotPresent:
                                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                      properties:
                                                        objectLocking:
                                                          description: ObjectLocking Enable object locking
                                                          type: boolean
                                                      type: object
                                                    encryptionOptions:
                                                      description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                      properties:
                                                        enableEncryption:
                                                          description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                          type: boolean
                                                        kmsEncryptionContext:
                                                          description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                          type: string
                                                        kmsKeyId:
                                                          description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                          type: string
                                                        serverSideCustomerKeySecret:
                                                          description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    endpoint:
                                                      description: Endpoint is the hostname of the bucket endpoint
                                                      type: string
                                                    insecure:
                                                      description: Insecure will connect to the service with TLS
                                                      type: boolean
                                                    key:
                                                      description: Key is the key in the bucket where the artifact resides
                                                      type: string
                                                    region:
                                                      description: Region contains the optional bucket region
                                                      type: string
                                                    roleARN:
                                                      description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                      type: string
                                                    secretKeySecret:
                                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    sessionTokenSecret:
                                                      description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    useSDKCreds:
                                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                      type: boolean
                                                  type: object
                                                subPath:
                                                  description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                                  type: string
                                              required:
                                              - name
                                              type: object
                                              x-kubernetes-validations:
                                              - message: at most one artifact location can be specified
                                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                            type: array
                                          parameters:
                                            description: Parameters is the list of parameters to pass to the template or workflow
                                            items:
                                              description: Parameter indicate a passed string parameter to a service template with an optional default value
                                              properties:
                                                default:
                                                  description: Default is the default value to use for an input parameter if a value was not supplied
                                                  type: string
                                                description:
                                                  description: Description is the parameter description
                                                  type: string
                                                enum:
                                                  description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                                  items:
                                                    description: '* It''s JSON type is just string.

                                                      * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                      * It will marshall back to string - marshalling is not symmetric.'
                                                    type: string
                                                  minItems: 1
                                                  type: array
                                                globalName:
                                                  description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                    ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                                  type: string
                                                name:
                                                  description: Name is the parameter name
                                                  pattern: ^[-a-zA-Z0-9_]+$
                                                  type: string
                                                value:
                                                  description: 'Value is the literal value to use for the parameter.

                                                    If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                                  type: string
                                                valueFrom:
                                                  description: ValueFrom is the source for the output parameter's value
                                                  properties:
                                                    configMapKeyRef:
                                                      description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                      properties:
                                                        key:
                                                          description: The key to select.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the ConfigMap or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    default:
                                                      description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                      type: string
                                                    event:
                                                      description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                      type: string
                                                    expression:
                                                      description: Expression, if defined, is evaluated to specify the value for the parameter
                                                      type: string
                                                    jqFilter:
                                                      description: JQFilter expression against the resource object in resource templates
                                                      type: string
                                                    jsonPath:
                                                      description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                      type: string
                                                    parameter:
                                                      description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                        (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                      type: string
                                                    path:
                                                      description: Path in the container to retrieve an output parameter value from in container templates
                                                      type: string
                                                    supplied:
                                                      description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                      type: object
                                                  type: object
                                              required:
                                              - name
                                              type: object
                                            type: array
                                        type: object
                                      expression:
                                        description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                          be retried and the retry strategy will be ignored'
                                        type: string
                                      template:
                                        description: Template is the name of the template to execute by the hook
                                        type: string
                                      templateRef:
                                        description: TemplateRef is the reference to the template resource to execute by the hook
                                        properties:
                                          clusterScope:
                                            description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                            type: boolean
                                          name:
                                            description: Name is the resource name of the template.
                                            type: string
                                          template:
                                            description: Template is the name of referred template in the resource.
                                            type: string
                                        type: object
                                    type: object
                                  description: 'Hooks holds the lifecycle hook which is invoked at lifecycle of

                                    step, irrespective of the success, failure, or error status of the primary step'
                                  type: object
                                inline:
                                  description: 'Inline is the template. Template must be empty if this is declared (and vice-versa).

                                    Note: This struct is defined recursively, since the inline template can potentially contain

                                    steps/DAGs that also has an "inline" field. Kubernetes doesn''t allow recursive types, so we

                                    need "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                  x-kubernetes-preserve-unknown-fields: true
                                name:
                                  description: Name of the step
                                  maxLength: 128
                                  pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                  type: string
                                onExit:
                                  description: 'OnExit is a template reference which is invoked at the end of the

                                    template, irrespective of the success, failure, or error of the

                                    primary template.

                                    DEPRECATED: Use Hooks[exit].Template instead.'
                                  type: string
                                template:
                                  description: Template is the name of the template to execute as the step
                                  type: string
                                templateRef:
                                  description: TemplateRef is the reference to the template resource to execute as the step.
                                  properties:
                                    clusterScope:
                                      description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                      type: boolean
                                    name:
                                      description: Name is the resource name of the template.
                                      type: string
                                    template:
                                      description: Template is the name of referred template in the resource.
                                      type: string
                                  type: object
                                when:
                                  description: When is an expression in which the step should conditionally execute
                                  type: string
                                withItems:
                                  description: 'WithItems expands a step into multiple parallel steps from the items in the list

                                    Note: The structure of WithItems is free-form, so we need

                                    "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                  x-kubernetes-preserve-unknown-fields: true
                                withParam:
                                  description: 'WithParam expands a step into multiple parallel steps from the value in the parameter,

                                    which is expected to be a JSON list.'
                                  type: string
                                withSequence:
                                  description: WithSequence expands a step into a numeric sequence
                                  properties:
                                    count:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Count is number of elements in the sequence (default: 0). Not to be used with end'
                                      x-kubernetes-int-or-string: true
                                    end:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number at which to end the sequence (default: 0). Not to be used with Count'
                                      x-kubernetes-int-or-string: true
                                    format:
                                      description: Format is a printf format string to format the value in the sequence
                                      type: string
                                    start:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number at which to start the sequence (default: 0)'
                                      x-kubernetes-int-or-string: true
                                  type: object
                                  x-kubernetes-validations:
                                  - message: only one of count or end can be defined
                                    rule: '!(has(self.count) && has(self.end))'
                              type: object
                            type: array
                          minItems: 1
                          type: array
                        suspend:
                          description: Suspend template subtype which can suspend a workflow when reaching the step
                          properties:
                            duration:
                              description: 'Duration is the seconds to wait before automatically resuming a template. Must be a string. Default unit is seconds.

                                Could also be a Duration, e.g.: "2m", "6h"'
                              type: string
                          type: object
                        synchronization:
                          description: Synchronization holds synchronization lock configuration for this template
                          properties:
                            mutexes:
                              description: 'v3.6 and after: Mutexes holds the list of Mutex lock details'
                              items:
                                description: Mutex holds Mutex configuration
                                properties:
                                  database:
                                    description: Database specifies this is database controlled if this is set true
                                    type: boolean
                                  name:
                                    description: name of the mutex
                                    type: string
                                  namespace:
                                    description: 'Namespace is the namespace of the mutex, default: [namespace of workflow]'
                                    type: string
                                type: object
                              type: array
                            semaphores:
                              description: 'v3.6 and after: Semaphores holds the list of Semaphores configuration'
                              items:
                                description: SemaphoreRef is a reference of Semaphore
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is a configmap selector for Semaphore configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  database:
                                    description: SyncDatabaseRef is a database reference for Semaphore configuration
                                    properties:
                                      key:
                                        type: string
                                    required:
                                    - key
                                    type: object
                                  namespace:
                                    description: 'Namespace is the namespace of the configmap, default: [namespace of workflow]'
                                    type: string
                                type: object
                              type: array
                          type: object
                        timeout:
                          description: 'Timeout allows to set the total node execution timeout duration counting from the node''s start time.

                            This duration also includes time in which the node spends in Pending state. This duration may not be applied to Step or DAG templates.'
                          type: string
                        tolerations:
                          description: Tolerations to apply to workflow pods.
                          items:
                            description: 'The pod this Toleration is attached to tolerates any taint that matches

                              the triple <key,value,effect> using the matching operator <operator>.'
                            properties:
                              effect:
                                description: 'Effect indicates the taint effect to match. Empty means match all taint effects.

                                  When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.'
                                type: string
                              key:
                                description: 'Key is the taint key that the toleration applies to. Empty means match all taint keys.

                                  If the key is empty, operator must be Exists; this combination means to match all values and all keys.'
                                type: string
                              operator:
                                description: 'Operator represents a key''s relationship to the value.

                                  Valid operators are Exists and Equal. Defaults to Equal.

                                  Exists is equivalent to wildcard for value, so that a pod can

                                  tolerate all taints of a particular category.'
                                type: string
                              tolerationSeconds:
                                description: 'TolerationSeconds represents the period of time the toleration (which must be

                                  of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,

                                  it is not set, which means tolerate the taint forever (do not evict). Zero and

                                  negative values will be treated as 0 (evict immediately) by the system.'
                                format: int64
                                type: integer
                              value:
                                description: 'Value is the taint value the toleration matches to.

                                  If the operator is Exists, the value should be empty, otherwise just a regular string.'
                                type: string
                            type: object
                          type: array
                        volumes:
                          description: Volumes is a list of volumes that can be mounted by containers in a template.
                          items:
                            description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
                            properties:
                              awsElasticBlockStore:
                                description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a

                                  kubelet''s host machine and then exposed to the pod.

                                  Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree

                                  awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                properties:
                                  fsType:
                                    description: 'fsType is the filesystem type of the volume that you want to mount.

                                      Tip: Ensure that the filesystem type is supported by the host operating system.

                                      Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                    type: string
                                  partition:
                                    description: 'partition is the partition in the volume that you want to mount.

                                      If omitted, the default is to mount by volume name.

                                      Examples: For volume /dev/sda1, you specify the partition as "1".

                                      Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
                                    format: int32
                                    type: integer
                                  readOnly:
                                    description: 'readOnly value true will force the readOnly setting in VolumeMounts.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                    type: boolean
                                  volumeID:
                                    description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                    type: string
                                required:
                                - volumeID
                                type: object
                              azureDisk:
                                description: 'azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

                                  Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type

                                  are redirected to the disk.csi.azure.com CSI driver.'
                                properties:
                                  cachingMode:
                                    description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                                    type: string
                                  diskName:
                                    description: diskName is the Name of the data disk in the blob storage
                                    type: string
                                  diskURI:
                                    description: diskURI is the URI of data disk in the blob storage
                                    type: string
                                  fsType:
                                    default: ext4
                                    description: 'fsType is Filesystem type to mount.

                                      Must be a filesystem type supported by the host operating system.

                                      Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                    type: string
                                  kind:
                                    description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
                                    type: string
                                  readOnly:
                                    default: false
                                    description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.'
                                    type: boolean
                                required:
                                - diskName
                                - diskURI
                                type: object
                              azureFile:
                                description: 'azureFile represents an Azure File Service mount on the host and bind mount to the pod.

                                  Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type

                                  are redirected to the file.csi.azure.com CSI driver.'
                                properties:
                                  readOnly:
                                    description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.'
                                    type: boolean
                                  secretName:
                                    description: secretName is the  name of secret that contains Azure Storage Account Name and Key
                                    type: string
                                  shareName:
                                    description: shareName is the azure share Name
                                    type: string
                                required:
                                - secretName
                                - shareName
                                type: object
                              cephfs:
                                description: 'cephFS represents a Ceph FS mount on the host that shares a pod''s lifetime.

                                  Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.'
                                properties:
                                  monitors:
                                    description: 'monitors is Required: Monitors is a collection of Ceph monitors

                                      More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
                                    type: string
                                  readOnly:
                                    description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.

                                      More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                    type: boolean
                                  secretFile:
                                    description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret

                                      More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                    type: string
                                  secretRef:
                                    description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.

                                      More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  user:
                                    description: 'user is optional: User is the rados user name, default is admin

                                      More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                    type: string
                                required:
                                - monitors
                                type: object
                              cinder:
                                description: 'cinder represents a cinder volume attached and mounted on kubelets host machine.

                                  Deprecated: Cinder is deprecated. All operations for the in-tree cinder type

                                  are redirected to the cinder.csi.openstack.org CSI driver.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                properties:
                                  fsType:
                                    description: 'fsType is the filesystem type to mount.

                                      Must be a filesystem type supported by the host operating system.

                                      Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                      More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                    type: string
                                  readOnly:
                                    description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.

                                      More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                    type: boolean
                                  secretRef:
                                    description: 'secretRef is optional: points to a secret object containing parameters used to connect

                                      to OpenStack.'
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  volumeID:
                                    description: 'volumeID used to identify the volume in cinder.

                                      More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                    type: string
                                required:
                                - volumeID
                                type: object
                              configMap:
                                description: configMap represents a configMap that should populate this volume
                                properties:
                                  defaultMode:
                                    description: 'defaultMode is optional: mode bits used to set permissions on created files by default.

                                      Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                      Defaults to 0644.

                                      Directories within the path are not affected by this setting.

                                      This might be in conflict with other options that affect the file

                                      mode, like fsGroup, and the result can be other mode bits set.'
                                    format: int32
                                    type: integer
                                  items:
                                    description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                      ConfigMap will be projected into the volume as a file whose name is the

                                      key and content is the value. If specified, the listed keys will be

                                      projected into the specified paths, and unlisted keys will not be

                                      present. If a key is specified which is not present in the ConfigMap,

                                      the volume setup will error unless it is marked optional. Paths must be

                                      relative and may not contain the ''..'' path or start with ''..''.'
                                    items:
                                      description: Maps a string key to a path within a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file.

                                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'path is the relative path of the file to map the key to.

                                            May not be an absolute path.

                                            May not contain the path element ''..''.

                                            May not start with the string ''..''.'
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: optional specify whether the ConfigMap or its keys must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              csi:
                                description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
                                properties:
                                  driver:
                                    description: 'driver is the name of the CSI driver that handles this volume.

                                      Consult with your admin for the correct name as registered in the cluster.'
                                    type: string
                                  fsType:
                                    description: 'fsType to mount. Ex. "ext4", "xfs", "ntfs".

                                      If not provided, the empty value is passed to the associated CSI driver

                                      which will determine the default filesystem to apply.'
                                    type: string
                                  nodePublishSecretRef:
                                    description: 'nodePublishSecretRef is a reference to the secret object containing

                                      sensitive information to pass to the CSI driver to complete the CSI

                                      NodePublishVolume and NodeUnpublishVolume calls.

                                      This field is optional, and  may be empty if no secret is required. If the

                                      secret object contains more than one secret, all secret references are passed.'
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  readOnly:
                                    description: 'readOnly specifies a read-only configuration for the volume.

                                      Defaults to false (read/write).'
                                    type: boolean
                                  volumeAttributes:
                                    additionalProperties:
                                      type: string
                                    description: 'volumeAttributes stores driver-specific properties that are passed to the CSI

                                      driver. Consult your driver''s documentation for supported values.'
                                    type: object
                                required:
                                - driver
                                type: object
                              downwardAPI:
                                description: downwardAPI represents downward API about the pod that should populate this volume
                                properties:
                                  defaultMode:
                                    description: 'Optional: mode bits to use on created files by default. Must be a

                                      Optional: mode bits used to set permissions on created files by default.

                                      Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                      Defaults to 0644.

                                      Directories within the path are not affected by this setting.

                                      This might be in conflict with other options that affect the file

                                      mode, like fsGroup, and the result can be other mode bits set.'
                                    format: int32
                                    type: integer
                                  items:
                                    description: Items is a list of downward API volume file
                                    items:
                                      description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                      properties:
                                        fieldRef:
                                          description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        mode:
                                          description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                            between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                          type: string
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              emptyDir:
                                description: 'emptyDir represents a temporary directory that shares a pod''s lifetime.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                properties:
                                  medium:
                                    description: 'medium represents what type of storage medium should back this directory.

                                      The default is "" which means to use the node''s default medium.

                                      Must be an empty string (default) or Memory.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                    type: string
                                  sizeLimit:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume.

                                      The size limit is also applicable for memory medium.

                                      The maximum usage on memory medium EmptyDir would be the minimum value between

                                      the SizeLimit specified here and the sum of memory limits of all containers in a pod.

                                      The default is nil which means that the limit is undefined.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                type: object
                              ephemeral:
                                description: "ephemeral represents a volume that is handled by a cluster storage driver.\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n   tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\n   information on the connection between this volume type\n   and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time."
                                properties:
                                  volumeClaimTemplate:
                                    description: 'Will be used to create a stand-alone PVC to provision the volume.

                                      The pod in which this EphemeralVolumeSource is embedded will be the

                                      owner of the PVC, i.e. the PVC will be deleted together with the

                                      pod.  The name of the PVC will be `<pod name>-<volume name>` where

                                      `<volume name>` is the name from the `PodSpec.Volumes` array

                                      entry. Pod validation will reject the pod if the concatenated name

                                      is not valid for a PVC (for example, too long).


                                      An existing PVC with that name that is not owned by the pod

                                      will *not* be used for the pod to avoid using an unrelated

                                      volume by mistake. Starting the pod is then blocked until

                                      the unrelated PVC is removed. If such a pre-created PVC is

                                      meant to be used by the pod, the PVC has to updated with an

                                      owner reference to the pod once the pod exists. Normally

                                      this should not be necessary, but it may be useful when

                                      manually reconstructing a broken cluster.


                                      This field is read-only and no changes will be made by Kubernetes

                                      to the PVC after it has been created.


                                      Required, must not be nil.'
                                    properties:
                                      metadata:
                                        description: 'May contain labels and annotations that will be copied into the PVC

                                          when creating it. No other fields are allowed and will be rejected during

                                          validation.'
                                        properties:
                                          annotations:
                                            additionalProperties:
                                              type: string
                                            type: object
                                          finalizers:
                                            items:
                                              type: string
                                            type: array
                                          generateName:
                                            type: string
                                          labels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                          name:
                                            type: string
                                          namespace:
                                            type: string
                                        type: object
                                      spec:
                                        description: 'The specification for the PersistentVolumeClaim. The entire content is

                                          copied unchanged into the PVC that gets created from this

                                          template. The same fields as in a PersistentVolumeClaim

                                          are also valid here.'
                                        properties:
                                          accessModes:
                                            description: 'accessModes contains the desired access modes the volume should have.

                                              More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          dataSource:
                                            description: 'dataSource field can be used to specify either:

                                              * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                              * An existing PVC (PersistentVolumeClaim)

                                              If the provisioner or an external controller can support the specified data source,

                                              it will create a new volume based on the contents of the specified data source.

                                              When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                              and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                              If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                            properties:
                                              apiGroup:
                                                description: 'APIGroup is the group for the resource being referenced.

                                                  If APIGroup is not specified, the specified Kind must be in the core API group.

                                                  For any other third-party types, APIGroup is required.'
                                                type: string
                                              kind:
                                                description: Kind is the type of resource being referenced
                                                type: string
                                              name:
                                                description: Name is the name of resource being referenced
                                                type: string
                                            required:
                                            - kind
                                            - name
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          dataSourceRef:
                                            description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                                            properties:
                                              apiGroup:
                                                description: 'APIGroup is the group for the resource being referenced.

                                                  If APIGroup is not specified, the specified Kind must be in the core API group.

                                                  For any other third-party types, APIGroup is required.'
                                                type: string
                                              kind:
                                                description: Kind is the type of resource being referenced
                                                type: string
                                              name:
                                                description: Name is the name of resource being referenced
                                                type: string
                                              namespace:
                                                description: 'Namespace is the namespace of resource being referenced

                                                  Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                                  (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                                type: string
                                            required:
                                            - kind
                                            - name
                                            type: object
                                          resources:
                                            description: 'resources represents the minimum resources the volume should have.

                                              If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                              that are lower than previous value but must still be higher than capacity recorded in the

                                              status field of the claim.

                                              More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                            properties:
                                              limits:
                                                additionalProperties:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: 'Limits describes the maximum amount of compute resources allowed.

                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                                type: object
                                              requests:
                                                additionalProperties:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                description: 'Requests describes the minimum amount of compute resources required.

                                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                                type: object
                                            type: object
                                          selector:
                                            description: selector is a label query over volumes to consider for binding.
                                            properties:
                                              matchExpressions:
                                                description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                items:
                                                  description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                    relates the key and values.'
                                                  properties:
                                                    key:
                                                      description: key is the label key that the selector applies to.
                                                      type: string
                                                    operator:
                                                      description: 'operator represents a key''s relationship to a set of values.

                                                        Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                      type: string
                                                    values:
                                                      description: 'values is an array of string values. If the operator is In or NotIn,

                                                        the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                        the values array must be empty. This array is replaced during a strategic

                                                        merge patch.'
                                                      items:
                                                        type: string
                                                      type: array
                                                      x-kubernetes-list-type: atomic
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                                x-kubernetes-list-type: atomic
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                  map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                  operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                                type: object
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          storageClassName:
                                            description: 'storageClassName is the name of the StorageClass required by the claim.

                                              More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                            type: string
                                          volumeAttributesClassName:
                                            description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                              If specified, the CSI driver will create or update the volume with the attributes defined

                                              in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                              it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                              will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                              If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                              will be set by the persistentvolume controller if it exists.

                                              If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                              set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                              exists.

                                              More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                              (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                                            type: string
                                          volumeMode:
                                            description: 'volumeMode defines what type of volume is required by the claim.

                                              Value of Filesystem is implied when not included in claim spec.'
                                            type: string
                                          volumeName:
                                            description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                            type: string
                                        type: object
                                    required:
                                    - spec
                                    type: object
                                type: object
                              fc:
                                description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
                                properties:
                                  fsType:
                                    description: 'fsType is the filesystem type to mount.

                                      Must be a filesystem type supported by the host operating system.

                                      Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                    type: string
                                  lun:
                                    description: 'lun is Optional: FC target lun number'
                                    format: int32
                                    type: integer
                                  readOnly:
                                    description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.'
                                    type: boolean
                                  targetWWNs:
                                    description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  wwids:
                                    description: 'wwids Optional: FC volume world wide identifiers (wwids)

                                      Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              flexVolume:
                                description: 'flexVolume represents a generic volume resource that is

                                  provisioned/attached using an exec based plugin.

                                  Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.'
                                properties:
                                  driver:
                                    description: driver is the name of the driver to use for this volume.
                                    type: string
                                  fsType:
                                    description: 'fsType is the filesystem type to mount.

                                      Must be a filesystem type supported by the host operating system.

                                      Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.'
                                    type: string
                                  options:
                                    additionalProperties:
                                      type: string
                                    description: 'options is Optional: this field holds extra command options if any.'
                                    type: object
                                  readOnly:
                                    description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.'
                                    type: boolean
                                  secretRef:
                                    description: 'secretRef is Optional: secretRef is reference to the secret object containing

                                      sensitive information to pass to the plugin scripts. This may be

                                      empty if no secret object is specified. If the secret object

                                      contains more than one secret, all secrets are passed to the plugin

                                      scripts.'
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - driver
                                type: object
                              flocker:
                                description: 'flocker represents a Flocker volume attached to a kubelet''s host machine. This depends on the Flocker control service being running.

                                  Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.'
                                properties:
                                  datasetName:
                                    description: 'datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker

                                      should be considered as deprecated'
                                    type: string
                                  datasetUUID:
                                    description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
                                    type: string
                                type: object
                              gcePersistentDisk:
                                description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a

                                  kubelet''s host machine and then exposed to the pod.

                                  Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree

                                  gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                properties:
                                  fsType:
                                    description: 'fsType is filesystem type of the volume that you want to mount.

                                      Tip: Ensure that the filesystem type is supported by the host operating system.

                                      Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                    type: string
                                  partition:
                                    description: 'partition is the partition in the volume that you want to mount.

                                      If omitted, the default is to mount by volume name.

                                      Examples: For volume /dev/sda1, you specify the partition as "1".

                                      Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                    format: int32
                                    type: integer
                                  pdName:
                                    description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                    type: string
                                  readOnly:
                                    description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                      Defaults to false.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                    type: boolean
                                required:
                                - pdName
                                type: object
                              gitRepo:
                                description: 'gitRepo represents a git repository at a particular revision.

                                  Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an

                                  EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir

                                  into the Pod''s container.'
                                properties:
                                  directory:
                                    description: 'directory is the target directory name.

                                      Must not contain or start with ''..''.  If ''.'' is supplied, the volume directory will be the

                                      git repository.  Otherwise, if specified, the volume will contain the git repository in

                                      the subdirectory with the given name.'
                                    type: string
                                  repository:
                                    description: repository is the URL
                                    type: string
                                  revision:
                                    description: revision is the commit hash for the specified revision.
                                    type: string
                                required:
                                - repository
                                type: object
                              glusterfs:
                                description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime.

                                  Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md'
                                properties:
                                  endpoints:
                                    description: 'endpoints is the endpoint name that details Glusterfs topology.

                                      More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                    type: string
                                  path:
                                    description: 'path is the Glusterfs volume path.

                                      More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                    type: string
                                  readOnly:
                                    description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions.

                                      Defaults to false.

                                      More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                    type: boolean
                                required:
                                - endpoints
                                - path
                                type: object
                              hostPath:
                                description: 'hostPath represents a pre-existing file or directory on the host

                                  machine that is directly exposed to the container. This is generally

                                  used for system agents or other privileged things that are allowed

                                  to see the host machine. Most containers will NOT need this.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                properties:
                                  path:
                                    description: 'path of the directory on the host.

                                      If the path is a symlink, it will follow the link to the real path.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                    type: string
                                  type:
                                    description: 'type for HostPath Volume

                                      Defaults to ""

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                    type: string
                                required:
                                - path
                                type: object
                              image:
                                description: 'image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet''s host machine.

                                  The volume is resolved at pod startup depending on which PullPolicy value is provided:


                                  - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                                  - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                                  - IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.


                                  The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.

                                  A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.

                                  The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.

                                  The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.

                                  The volume will be mounted read-only (ro) and non-executable files (noexec).

                                  Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.

                                  The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.'
                                properties:
                                  pullPolicy:
                                    description: 'Policy for pulling OCI objects. Possible values are:

                                      Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                                      Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                                      IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.

                                      Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.'
                                    type: string
                                  reference:
                                    description: 'Required: Image or artifact reference to be used.

                                      Behaves in the same way as pod.spec.containers[*].image.

                                      Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.

                                      More info: https://kubernetes.io/docs/concepts/containers/images

                                      This field is optional to allow higher level config management to default or override

                                      container images in workload controllers like Deployments and StatefulSets.'
                                    type: string
                                type: object
                              iscsi:
                                description: 'iscsi represents an ISCSI Disk resource that is attached to a

                                  kubelet''s host machine and then exposed to the pod.

                                  More info: https://examples.k8s.io/volumes/iscsi/README.md'
                                properties:
                                  chapAuthDiscovery:
                                    description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
                                    type: boolean
                                  chapAuthSession:
                                    description: chapAuthSession defines whether support iSCSI Session CHAP authentication
                                    type: boolean
                                  fsType:
                                    description: 'fsType is the filesystem type of the volume that you want to mount.

                                      Tip: Ensure that the filesystem type is supported by the host operating system.

                                      Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi'
                                    type: string
                                  initiatorName:
                                    description: 'initiatorName is the custom iSCSI Initiator Name.

                                      If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface

                                      <target portal>:<volume name> will be created for the connection.'
                                    type: string
                                  iqn:
                                    description: iqn is the target iSCSI Qualified Name.
                                    type: string
                                  iscsiInterface:
                                    default: default
                                    description: 'iscsiInterface is the interface Name that uses an iSCSI transport.

                                      Defaults to ''default'' (tcp).'
                                    type: string
                                  lun:
                                    description: lun represents iSCSI Target Lun number.
                                    format: int32
                                    type: integer
                                  portals:
                                    description: 'portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port

                                      is other than default (typically TCP ports 860 and 3260).'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  readOnly:
                                    description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                      Defaults to false.'
                                    type: boolean
                                  secretRef:
                                    description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  targetPortal:
                                    description: 'targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port

                                      is other than default (typically TCP ports 860 and 3260).'
                                    type: string
                                required:
                                - iqn
                                - lun
                                - targetPortal
                                type: object
                              name:
                                description: 'name of the volume.

                                  Must be a DNS_LABEL and unique within the pod.

                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                              nfs:
                                description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                properties:
                                  path:
                                    description: 'path that is exported by the NFS server.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                    type: string
                                  readOnly:
                                    description: 'readOnly here will force the NFS export to be mounted with read-only permissions.

                                      Defaults to false.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                    type: boolean
                                  server:
                                    description: 'server is the hostname or IP address of the NFS server.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                    type: string
                                required:
                                - path
                                - server
                                type: object
                              persistentVolumeClaim:
                                description: 'persistentVolumeClaimVolumeSource represents a reference to a

                                  PersistentVolumeClaim in the same namespace.

                                  More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                                properties:
                                  claimName:
                                    description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.

                                      More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                                    type: string
                                  readOnly:
                                    description: 'readOnly Will force the ReadOnly setting in VolumeMounts.

                                      Default false.'
                                    type: boolean
                                required:
                                - claimName
                                type: object
                              photonPersistentDisk:
                                description: 'photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.

                                  Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.'
                                properties:
                                  fsType:
                                    description: 'fsType is the filesystem type to mount.

                                      Must be a filesystem type supported by the host operating system.

                                      Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                    type: string
                                  pdID:
                                    description: pdID is the ID that identifies Photon Controller persistent disk
                                    type: string
                                required:
                                - pdID
                                type: object
                              portworxVolume:
                                description: 'portworxVolume represents a portworx volume attached and mounted on kubelets host machine.

                                  Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type

                                  are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate

                                  is on.'
                                properties:
                                  fsType:
                                    description: 'fSType represents the filesystem type to mount

                                      Must be a filesystem type supported by the host operating system.

                                      Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.'
                                    type: string
                                  readOnly:
                                    description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.'
                                    type: boolean
                                  volumeID:
                                    description: volumeID uniquely identifies a Portworx volume
                                    type: string
                                required:
                                - volumeID
                                type: object
                              projected:
                                description: projected items for all in one resources secrets, configmaps, and downward API
                                properties:
                                  defaultMode:
                                    description: 'defaultMode are the mode bits used to set permissions on created files by default.

                                      Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                      Directories within the path are not affected by this setting.

                                      This might be in conflict with other options that affect the file

                                      mode, like fsGroup, and the result can be other mode bits set.'
                                    format: int32
                                    type: integer
                                  sources:
                                    description: 'sources is the list of volume projections. Each entry in this list

                                      handles one source.'
                                    items:
                                      description: 'Projection that may be projected along with other supported volume types.

                                        Exactly one of these fields must be set.'
                                      properties:
                                        clusterTrustBundle:
                                          description: 'ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field

                                            of ClusterTrustBundle objects in an auto-updating file.


                                            Alpha, gated by the ClusterTrustBundleProjection feature gate.


                                            ClusterTrustBundle objects can either be selected by name, or by the

                                            combination of signer name and a label selector.


                                            Kubelet performs aggressive normalization of the PEM contents written

                                            into the pod filesystem.  Esoteric PEM features such as inter-block

                                            comments and block headers are stripped.  Certificates are deduplicated.

                                            The ordering of certificates within the file is arbitrary, and Kubelet

                                            may change the order over time.'
                                          properties:
                                            labelSelector:
                                              description: 'Select all ClusterTrustBundles that match this label selector.  Only has

                                                effect if signerName is set.  Mutually-exclusive with name.  If unset,

                                                interpreted as "match nothing".  If set but empty, interpreted as "match

                                                everything".'
                                              properties:
                                                matchExpressions:
                                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                                  items:
                                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                      relates the key and values.'
                                                    properties:
                                                      key:
                                                        description: key is the label key that the selector applies to.
                                                        type: string
                                                      operator:
                                                        description: 'operator represents a key''s relationship to a set of values.

                                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                        type: string
                                                      values:
                                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                          the values array must be empty. This array is replaced during a strategic

                                                          merge patch.'
                                                        items:
                                                          type: string
                                                        type: array
                                                        x-kubernetes-list-type: atomic
                                                    required:
                                                    - key
                                                    - operator
                                                    type: object
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                                matchLabels:
                                                  additionalProperties:
                                                    type: string
                                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                                  type: object
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            name:
                                              description: 'Select a single ClusterTrustBundle by object name.  Mutually-exclusive

                                                with signerName and labelSelector.'
                                              type: string
                                            optional:
                                              description: 'If true, don''t block pod startup if the referenced ClusterTrustBundle(s)

                                                aren''t available.  If using name, then the named ClusterTrustBundle is

                                                allowed not to exist.  If using signerName, then the combination of

                                                signerName and labelSelector is allowed to match zero

                                                ClusterTrustBundles.'
                                              type: boolean
                                            path:
                                              description: Relative path from the volume root to write the bundle.
                                              type: string
                                            signerName:
                                              description: 'Select all ClusterTrustBundles that match this signer name.

                                                Mutually-exclusive with name.  The contents of all selected

                                                ClusterTrustBundles will be unified and deduplicated.'
                                              type: string
                                          required:
                                          - path
                                          type: object
                                        configMap:
                                          description: configMap information about the configMap data to project
                                          properties:
                                            items:
                                              description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                                ConfigMap will be projected into the volume as a file whose name is the

                                                key and content is the value. If specified, the listed keys will be

                                                projected into the specified paths, and unlisted keys will not be

                                                present. If a key is specified which is not present in the ConfigMap,

                                                the volume setup will error unless it is marked optional. Paths must be

                                                relative and may not contain the ''..'' path or start with ''..''.'
                                              items:
                                                description: Maps a string key to a path within a volume.
                                                properties:
                                                  key:
                                                    description: key is the key to project.
                                                    type: string
                                                  mode:
                                                    description: 'mode is Optional: mode bits used to set permissions on this file.

                                                      Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                      If not specified, the volume defaultMode will be used.

                                                      This might be in conflict with other options that affect the file

                                                      mode, like fsGroup, and the result can be other mode bits set.'
                                                    format: int32
                                                    type: integer
                                                  path:
                                                    description: 'path is the relative path of the file to map the key to.

                                                      May not be an absolute path.

                                                      May not contain the path element ''..''.

                                                      May not start with the string ''..''.'
                                                    type: string
                                                required:
                                                - key
                                                - path
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: optional specify whether the ConfigMap or its keys must be defined
                                              type: boolean
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        downwardAPI:
                                          description: downwardAPI information about the downwardAPI data to project
                                          properties:
                                            items:
                                              description: Items is a list of DownwardAPIVolume file
                                              items:
                                                description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                                properties:
                                                  fieldRef:
                                                    description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                                    properties:
                                                      apiVersion:
                                                        description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                                        type: string
                                                      fieldPath:
                                                        description: Path of the field to select in the specified API version.
                                                        type: string
                                                    required:
                                                    - fieldPath
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  mode:
                                                    description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                                      between 0000 and 0777 or a decimal value between 0 and 511.

                                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                      If not specified, the volume defaultMode will be used.

                                                      This might be in conflict with other options that affect the file

                                                      mode, like fsGroup, and the result can be other mode bits set.'
                                                    format: int32
                                                    type: integer
                                                  path:
                                                    description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                                    type: string
                                                  resourceFieldRef:
                                                    description: 'Selects a resource of the container: only resources limits and requests

                                                      (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                                    properties:
                                                      containerName:
                                                        description: 'Container name: required for volumes, optional for env vars'
                                                        type: string
                                                      divisor:
                                                        anyOf:
                                                        - type: integer
                                                        - type: string
                                                        description: Specifies the output format of the exposed resources, defaults to "1"
                                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                        x-kubernetes-int-or-string: true
                                                      resource:
                                                        description: 'Required: resource to select'
                                                        type: string
                                                    required:
                                                    - resource
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - path
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          type: object
                                        secret:
                                          description: secret information about the secret data to project
                                          properties:
                                            items:
                                              description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                                Secret will be projected into the volume as a file whose name is the

                                                key and content is the value. If specified, the listed keys will be

                                                projected into the specified paths, and unlisted keys will not be

                                                present. If a key is specified which is not present in the Secret,

                                                the volume setup will error unless it is marked optional. Paths must be

                                                relative and may not contain the ''..'' path or start with ''..''.'
                                              items:
                                                description: Maps a string key to a path within a volume.
                                                properties:
                                                  key:
                                                    description: key is the key to project.
                                                    type: string
                                                  mode:
                                                    description: 'mode is Optional: mode bits used to set permissions on this file.

                                                      Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                      If not specified, the volume defaultMode will be used.

                                                      This might be in conflict with other options that affect the file

                                                      mode, like fsGroup, and the result can be other mode bits set.'
                                                    format: int32
                                                    type: integer
                                                  path:
                                                    description: 'path is the relative path of the file to map the key to.

                                                      May not be an absolute path.

                                                      May not contain the path element ''..''.

                                                      May not start with the string ''..''.'
                                                    type: string
                                                required:
                                                - key
                                                - path
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: optional field specify whether the Secret or its key must be defined
                                              type: boolean
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        serviceAccountToken:
                                          description: serviceAccountToken is information about the serviceAccountToken data to project
                                          properties:
                                            audience:
                                              description: 'audience is the intended audience of the token. A recipient of a token

                                                must identify itself with an identifier specified in the audience of the

                                                token, and otherwise should reject the token. The audience defaults to the

                                                identifier of the apiserver.'
                                              type: string
                                            expirationSeconds:
                                              description: 'expirationSeconds is the requested duration of validity of the service

                                                account token. As the token approaches expiration, the kubelet volume

                                                plugin will proactively rotate the service account token. The kubelet will

                                                start trying to rotate the token if the token is older than 80 percent of

                                                its time to live or if the token is older than 24 hours.Defaults to 1 hour

                                                and must be at least 10 minutes.'
                                              format: int64
                                              type: integer
                                            path:
                                              description: 'path is the path relative to the mount point of the file to project the

                                                token into.'
                                              type: string
                                          required:
                                          - path
                                          type: object
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              quobyte:
                                description: 'quobyte represents a Quobyte mount on the host that shares a pod''s lifetime.

                                  Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.'
                                properties:
                                  group:
                                    description: 'group to map volume access to

                                      Default is no group'
                                    type: string
                                  readOnly:
                                    description: 'readOnly here will force the Quobyte volume to be mounted with read-only permissions.

                                      Defaults to false.'
                                    type: boolean
                                  registry:
                                    description: 'registry represents a single or multiple Quobyte Registry services

                                      specified as a string as host:port pair (multiple entries are separated with commas)

                                      which acts as the central registry for volumes'
                                    type: string
                                  tenant:
                                    description: 'tenant owning the given Quobyte volume in the Backend

                                      Used with dynamically provisioned Quobyte volumes, value is set by the plugin'
                                    type: string
                                  user:
                                    description: 'user to map volume access to

                                      Defaults to serivceaccount user'
                                    type: string
                                  volume:
                                    description: volume is a string that references an already created Quobyte volume by name.
                                    type: string
                                required:
                                - registry
                                - volume
                                type: object
                              rbd:
                                description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime.

                                  Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md'
                                properties:
                                  fsType:
                                    description: 'fsType is the filesystem type of the volume that you want to mount.

                                      Tip: Ensure that the filesystem type is supported by the host operating system.

                                      Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd'
                                    type: string
                                  image:
                                    description: 'image is the rados image name.

                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                    type: string
                                  keyring:
                                    default: /etc/ceph/keyring
                                    description: 'keyring is the path to key ring for RBDUser.

                                      Default is /etc/ceph/keyring.

                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                    type: string
                                  monitors:
                                    description: 'monitors is a collection of Ceph monitors.

                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  pool:
                                    default: rbd
                                    description: 'pool is the rados pool name.

                                      Default is rbd.

                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                    type: string
                                  readOnly:
                                    description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                      Defaults to false.

                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                    type: boolean
                                  secretRef:
                                    description: 'secretRef is name of the authentication secret for RBDUser. If provided

                                      overrides keyring.

                                      Default is nil.

                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  user:
                                    default: admin
                                    description: 'user is the rados user name.

                                      Default is admin.

                                      More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                    type: string
                                required:
                                - image
                                - monitors
                                type: object
                              scaleIO:
                                description: 'scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

                                  Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.'
                                properties:
                                  fsType:
                                    default: xfs
                                    description: 'fsType is the filesystem type to mount.

                                      Must be a filesystem type supported by the host operating system.

                                      Ex. "ext4", "xfs", "ntfs".

                                      Default is "xfs".'
                                    type: string
                                  gateway:
                                    description: gateway is the host address of the ScaleIO API Gateway.
                                    type: string
                                  protectionDomain:
                                    description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
                                    type: string
                                  readOnly:
                                    description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.'
                                    type: boolean
                                  secretRef:
                                    description: 'secretRef references to the secret for ScaleIO user and other

                                      sensitive information. If this is not provided, Login operation will fail.'
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sslEnabled:
                                    description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
                                    type: boolean
                                  storageMode:
                                    default: ThinProvisioned
                                    description: 'storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

                                      Default is ThinProvisioned.'
                                    type: string
                                  storagePool:
                                    description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
                                    type: string
                                  system:
                                    description: system is the name of the storage system as configured in ScaleIO.
                                    type: string
                                  volumeName:
                                    description: 'volumeName is the name of a volume already created in the ScaleIO system

                                      that is associated with this volume source.'
                                    type: string
                                required:
                                - gateway
                                - secretRef
                                - system
                                type: object
                              secret:
                                description: 'secret represents a secret that should populate this volume.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                                properties:
                                  defaultMode:
                                    description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.

                                      Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                      YAML accepts both octal and decimal values, JSON requires decimal values

                                      for mode bits. Defaults to 0644.

                                      Directories within the path are not affected by this setting.

                                      This might be in conflict with other options that affect the file

                                      mode, like fsGroup, and the result can be other mode bits set.'
                                    format: int32
                                    type: integer
                                  items:
                                    description: 'items If unspecified, each key-value pair in the Data field of the referenced

                                      Secret will be projected into the volume as a file whose name is the

                                      key and content is the value. If specified, the listed keys will be

                                      projected into the specified paths, and unlisted keys will not be

                                      present. If a key is specified which is not present in the Secret,

                                      the volume setup will error unless it is marked optional. Paths must be

                                      relative and may not contain the ''..'' path or start with ''..''.'
                                    items:
                                      description: Maps a string key to a path within a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file.

                                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'path is the relative path of the file to map the key to.

                                            May not be an absolute path.

                                            May not contain the path element ''..''.

                                            May not start with the string ''..''.'
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  optional:
                                    description: optional field specify whether the Secret or its keys must be defined
                                    type: boolean
                                  secretName:
                                    description: 'secretName is the name of the secret in the pod''s namespace to use.

                                      More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                                    type: string
                                type: object
                              storageos:
                                description: 'storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

                                  Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.'
                                properties:
                                  fsType:
                                    description: 'fsType is the filesystem type to mount.

                                      Must be a filesystem type supported by the host operating system.

                                      Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                    type: string
                                  readOnly:
                                    description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                      the ReadOnly setting in VolumeMounts.'
                                    type: boolean
                                  secretRef:
                                    description: 'secretRef specifies the secret to use for obtaining the StorageOS API

                                      credentials.  If not specified, default values will be attempted.'
                                    properties:
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  volumeName:
                                    description: 'volumeName is the human-readable name of the StorageOS volume.  Volume

                                      names are only unique within a namespace.'
                                    type: string
                                  volumeNamespace:
                                    description: 'volumeNamespace specifies the scope of the volume within StorageOS.  If no

                                      namespace is specified then the Pod''s namespace will be used.  This allows the

                                      Kubernetes name scoping to be mirrored within StorageOS for tighter integration.

                                      Set VolumeName to any name to override the default behaviour.

                                      Set to "default" if you are not using namespaces within StorageOS.

                                      Namespaces that do not pre-exist within StorageOS will be created.'
                                    type: string
                                type: object
                              vsphereVolume:
                                description: 'vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.

                                  Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type

                                  are redirected to the csi.vsphere.vmware.com CSI driver.'
                                properties:
                                  fsType:
                                    description: 'fsType is filesystem type to mount.

                                      Must be a filesystem type supported by the host operating system.

                                      Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                    type: string
                                  storagePolicyID:
                                    description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
                                    type: string
                                  storagePolicyName:
                                    description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
                                    type: string
                                  volumePath:
                                    description: volumePath is the path that identifies vSphere volume vmdk
                                    type: string
                                required:
                                - volumePath
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                      type: object
                    maxItems: 200
                    type: array
                    x-kubernetes-validations:
                    - message: template must have at most one template type
                      rule: 'self.all(t, (has(t.container) ? 1 : 0) + (has(t.script) ? 1 : 0) + (has(t.dag) ? 1 : 0) + (has(t.steps) ? 1 : 0) + (has(t.resource) ? 1 : 0) + (has(t.suspend) ? 1 : 0) + (has(t.containerSet) ? 1 : 0) + (has(t.data) ? 1 : 0) + (has(t.http) ? 1 : 0) + (has(t.plugin) ? 1 : 0) <= 1)'
                    - message: timeout cannot be applied to steps or dag templates
                      rule: self.all(t, !(has(t.timeout) && t.timeout != "" && (has(t.steps) || has(t.dag))))
                    - message: activeDeadlineSeconds is only valid for leaf templates
                      rule: self.all(t, !(has(t.activeDeadlineSeconds) && (has(t.steps) || has(t.dag))))
                  tolerations:
                    description: Tolerations to apply to workflow pods.
                    items:
                      description: 'The pod this Toleration is attached to tolerates any taint that matches

                        the triple <key,value,effect> using the matching operator <operator>.'
                      properties:
                        effect:
                          description: 'Effect indicates the taint effect to match. Empty means match all taint effects.

                            When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.'
                          type: string
                        key:
                          description: 'Key is the taint key that the toleration applies to. Empty means match all taint keys.

                            If the key is empty, operator must be Exists; this combination means to match all values and all keys.'
                          type: string
                        operator:
                          description: 'Operator represents a key''s relationship to the value.

                            Valid operators are Exists and Equal. Defaults to Equal.

                            Exists is equivalent to wildcard for value, so that a pod can

                            tolerate all taints of a particular category.'
                          type: string
                        tolerationSeconds:
                          description: 'TolerationSeconds represents the period of time the toleration (which must be

                            of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,

                            it is not set, which means tolerate the taint forever (do not evict). Zero and

                            negative values will be treated as 0 (evict immediately) by the system.'
                          format: int64
                          type: integer
                        value:
                          description: 'Value is the taint value the toleration matches to.

                            If the operator is Exists, the value should be empty, otherwise just a regular string.'
                          type: string
                      type: object
                    type: array
                  ttlStrategy:
                    description: 'TTLStrategy limits the lifetime of a Workflow that has finished execution depending on if it

                      Succeeded or Failed. If this struct is set, once the Workflow finishes, it will be

                      deleted after the time to live expires. If this field is unset,

                      the controller config map will hold the default values.'
                    properties:
                      secondsAfterCompletion:
                        description: SecondsAfterCompletion is the number of seconds to live after completion
                        format: int32
                        type: integer
                      secondsAfterFailure:
                        description: SecondsAfterFailure is the number of seconds to live after failure
                        format: int32
                        type: integer
                      secondsAfterSuccess:
                        description: SecondsAfterSuccess is the number of seconds to live after success
                        format: int32
                        type: integer
                    type: object
                  volumeClaimGC:
                    description: VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows
                    properties:
                      strategy:
                        description: Strategy is the strategy to use. One of "OnWorkflowCompletion", "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
                        type: string
                    type: object
                  volumeClaimTemplates:
                    description: 'VolumeClaimTemplates is a list of claims that containers are allowed to reference.

                      The Workflow controller will create the claims at the beginning of the workflow

                      and delete the claims upon completion of the workflow'
                    items:
                      description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
                      properties:
                        apiVersion:
                          description: 'APIVersion defines the versioned schema of this representation of an object.

                            Servers should convert recognized schemas to the latest internal value, and

                            may reject unrecognized values.

                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                          type: string
                        kind:
                          description: 'Kind is a string value representing the REST resource this object represents.

                            Servers may infer this from the endpoint the client submits requests to.

                            Cannot be updated.

                            In CamelCase.

                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                          type: string
                        metadata:
                          description: 'Standard object''s metadata.

                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            finalizers:
                              items:
                                type: string
                              type: array
                            generateName:
                              type: string
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        spec:
                          description: 'spec defines the desired characteristics of a volume requested by a pod author.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                          properties:
                            accessModes:
                              description: 'accessModes contains the desired access modes the volume should have.

                                More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            dataSource:
                              description: 'dataSource field can be used to specify either:

                                * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                * An existing PVC (PersistentVolumeClaim)

                                If the provisioner or an external controller can support the specified data source,

                                it will create a new volume based on the contents of the specified data source.

                                When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                              properties:
                                apiGroup:
                                  description: 'APIGroup is the group for the resource being referenced.

                                    If APIGroup is not specified, the specified Kind must be in the core API group.

                                    For any other third-party types, APIGroup is required.'
                                  type: string
                                kind:
                                  description: Kind is the type of resource being referenced
                                  type: string
                                name:
                                  description: Name is the name of resource being referenced
                                  type: string
                              required:
                              - kind
                              - name
                              type: object
                              x-kubernetes-map-type: atomic
                            dataSourceRef:
                              description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                              properties:
                                apiGroup:
                                  description: 'APIGroup is the group for the resource being referenced.

                                    If APIGroup is not specified, the specified Kind must be in the core API group.

                                    For any other third-party types, APIGroup is required.'
                                  type: string
                                kind:
                                  description: Kind is the type of resource being referenced
                                  type: string
                                name:
                                  description: Name is the name of resource being referenced
                                  type: string
                                namespace:
                                  description: 'Namespace is the namespace of resource being referenced

                                    Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                    (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                  type: string
                              required:
                              - kind
                              - name
                              type: object
                            resources:
                              description: 'resources represents the minimum resources the volume should have.

                                If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                that are lower than previous value but must still be higher than capacity recorded in the

                                status field of the claim.

                                More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                              properties:
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Limits describes the maximum amount of compute resources allowed.

                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  description: 'Requests describes the minimum amount of compute resources required.

                                    If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                    otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                    More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                  type: object
                              type: object
                            selector:
                              description: selector is a label query over volumes to consider for binding.
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            storageClassName:
                              description: 'storageClassName is the name of the StorageClass required by the claim.

                                More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                              type: string
                            volumeAttributesClassName:
                              description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                If specified, the CSI driver will create or update the volume with the attributes defined

                                in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                will be set by the persistentvolume controller if it exists.

                                If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                exists.

                                More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                              type: string
                            volumeMode:
                              description: 'volumeMode defines what type of volume is required by the claim.

                                Value of Filesystem is implied when not included in claim spec.'
                              type: string
                            volumeName:
                              description: volumeName is the binding reference to the PersistentVolume backing this claim.
                              type: string
                          type: object
                        status:
                          description: 'status represents the current information/status of a persistent volume claim.

                            Read-only.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                          properties:
                            accessModes:
                              description: 'accessModes contains the actual access modes the volume backing the PVC has.

                                More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            allocatedResourceStatuses:
                              additionalProperties:
                                description: 'When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource

                                  that it does not recognizes, then it should ignore that update and let other controllers

                                  handle it.'
                                type: string
                              description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
                              type: object
                              x-kubernetes-map-type: granular
                            allocatedResources:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
                              type: object
                            capacity:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: capacity represents the actual resources of the underlying volume.
                              type: object
                            conditions:
                              description: 'conditions is the current Condition of persistent volume claim. If underlying persistent volume is being

                                resized then the Condition will be set to ''Resizing''.'
                              items:
                                description: PersistentVolumeClaimCondition contains details about state of pvc
                                properties:
                                  lastProbeTime:
                                    description: lastProbeTime is the time we probed the condition.
                                    format: date-time
                                    type: string
                                  lastTransitionTime:
                                    description: lastTransitionTime is the time the condition transitioned from one status to another.
                                    format: date-time
                                    type: string
                                  message:
                                    description: message is the human-readable message indicating details about last transition.
                                    type: string
                                  reason:
                                    description: 'reason is a unique, this should be a short, machine understandable string that gives the reason

                                      for condition''s last transition. If it reports "Resizing" that means the underlying

                                      persistent volume is being resized.'
                                    type: string
                                  status:
                                    description: 'Status is the status of the condition.

                                      Can be True, False, Unknown.

                                      More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required'
                                    type: string
                                  type:
                                    description: 'Type is the type of the condition.

                                      More info: 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'
                                    type: string
                                required:
                                - status
                                - type
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - type
                              x-kubernetes-list-type: map
                            currentVolumeAttributesClassName:
                              description: 'currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.

                                When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim

                                This is a beta field and requires enabling VolumeAttributesClass feature (off by default).'
                              type: string
                            modifyVolumeStatus:
                              description: 'ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.

                                When this is unset, there is no ModifyVolume operation being attempted.

                                This is a beta field and requires enabling VolumeAttributesClass feature (off by default).'
                              properties:
                                status:
                                  description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n   Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n   the specified VolumeAttributesClass not existing.\n - InProgress\n   InProgress indicates that the volume is being modified.\n - Infeasible\n  Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t  resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately."
                                  type: string
                                targetVolumeAttributesClassName:
                                  description: targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled
                                  type: string
                              required:
                              - status
                              type: object
                            phase:
                              description: phase represents the current phase of PersistentVolumeClaim.
                              type: string
                          type: object
                      type: object
                    type: array
                  volumes:
                    description: Volumes is a list of volumes that can be mounted by containers in a workflow.
                    items:
                      description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
                      properties:
                        awsElasticBlockStore:
                          description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a

                            kubelet''s host machine and then exposed to the pod.

                            Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree

                            awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          properties:
                            fsType:
                              description: 'fsType is the filesystem type of the volume that you want to mount.

                                Tip: Ensure that the filesystem type is supported by the host operating system.

                                Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                              type: string
                            partition:
                              description: 'partition is the partition in the volume that you want to mount.

                                If omitted, the default is to mount by volume name.

                                Examples: For volume /dev/sda1, you specify the partition as "1".

                                Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
                              format: int32
                              type: integer
                            readOnly:
                              description: 'readOnly value true will force the readOnly setting in VolumeMounts.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                              type: boolean
                            volumeID:
                              description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                              type: string
                          required:
                          - volumeID
                          type: object
                        azureDisk:
                          description: 'azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

                            Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type

                            are redirected to the disk.csi.azure.com CSI driver.'
                          properties:
                            cachingMode:
                              description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                              type: string
                            diskName:
                              description: diskName is the Name of the data disk in the blob storage
                              type: string
                            diskURI:
                              description: diskURI is the URI of data disk in the blob storage
                              type: string
                            fsType:
                              default: ext4
                              description: 'fsType is Filesystem type to mount.

                                Must be a filesystem type supported by the host operating system.

                                Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                              type: string
                            kind:
                              description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
                              type: string
                            readOnly:
                              default: false
                              description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.'
                              type: boolean
                          required:
                          - diskName
                          - diskURI
                          type: object
                        azureFile:
                          description: 'azureFile represents an Azure File Service mount on the host and bind mount to the pod.

                            Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type

                            are redirected to the file.csi.azure.com CSI driver.'
                          properties:
                            readOnly:
                              description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.'
                              type: boolean
                            secretName:
                              description: secretName is the  name of secret that contains Azure Storage Account Name and Key
                              type: string
                            shareName:
                              description: shareName is the azure share Name
                              type: string
                          required:
                          - secretName
                          - shareName
                          type: object
                        cephfs:
                          description: 'cephFS represents a Ceph FS mount on the host that shares a pod''s lifetime.

                            Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.'
                          properties:
                            monitors:
                              description: 'monitors is Required: Monitors is a collection of Ceph monitors

                                More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            path:
                              description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
                              type: string
                            readOnly:
                              description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.

                                More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                              type: boolean
                            secretFile:
                              description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret

                                More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                              type: string
                            secretRef:
                              description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.

                                More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            user:
                              description: 'user is optional: User is the rados user name, default is admin

                                More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                              type: string
                          required:
                          - monitors
                          type: object
                        cinder:
                          description: 'cinder represents a cinder volume attached and mounted on kubelets host machine.

                            Deprecated: Cinder is deprecated. All operations for the in-tree cinder type

                            are redirected to the cinder.csi.openstack.org CSI driver.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          properties:
                            fsType:
                              description: 'fsType is the filesystem type to mount.

                                Must be a filesystem type supported by the host operating system.

                                Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                              type: string
                            readOnly:
                              description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.

                                More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                              type: boolean
                            secretRef:
                              description: 'secretRef is optional: points to a secret object containing parameters used to connect

                                to OpenStack.'
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            volumeID:
                              description: 'volumeID used to identify the volume in cinder.

                                More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                              type: string
                          required:
                          - volumeID
                          type: object
                        configMap:
                          description: configMap represents a configMap that should populate this volume
                          properties:
                            defaultMode:
                              description: 'defaultMode is optional: mode bits used to set permissions on created files by default.

                                Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                Defaults to 0644.

                                Directories within the path are not affected by this setting.

                                This might be in conflict with other options that affect the file

                                mode, like fsGroup, and the result can be other mode bits set.'
                              format: int32
                              type: integer
                            items:
                              description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                ConfigMap will be projected into the volume as a file whose name is the

                                key and content is the value. If specified, the listed keys will be

                                projected into the specified paths, and unlisted keys will not be

                                present. If a key is specified which is not present in the ConfigMap,

                                the volume setup will error unless it is marked optional. Paths must be

                                relative and may not contain the ''..'' path or start with ''..''.'
                              items:
                                description: Maps a string key to a path within a volume.
                                properties:
                                  key:
                                    description: key is the key to project.
                                    type: string
                                  mode:
                                    description: 'mode is Optional: mode bits used to set permissions on this file.

                                      Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                      If not specified, the volume defaultMode will be used.

                                      This might be in conflict with other options that affect the file

                                      mode, like fsGroup, and the result can be other mode bits set.'
                                    format: int32
                                    type: integer
                                  path:
                                    description: 'path is the relative path of the file to map the key to.

                                      May not be an absolute path.

                                      May not contain the path element ''..''.

                                      May not start with the string ''..''.'
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: optional specify whether the ConfigMap or its keys must be defined
                              type: boolean
                          type: object
                          x-kubernetes-map-type: atomic
                        csi:
                          description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
                          properties:
                            driver:
                              description: 'driver is the name of the CSI driver that handles this volume.

                                Consult with your admin for the correct name as registered in the cluster.'
                              type: string
                            fsType:
                              description: 'fsType to mount. Ex. "ext4", "xfs", "ntfs".

                                If not provided, the empty value is passed to the associated CSI driver

                                which will determine the default filesystem to apply.'
                              type: string
                            nodePublishSecretRef:
                              description: 'nodePublishSecretRef is a reference to the secret object containing

                                sensitive information to pass to the CSI driver to complete the CSI

                                NodePublishVolume and NodeUnpublishVolume calls.

                                This field is optional, and  may be empty if no secret is required. If the

                                secret object contains more than one secret, all secret references are passed.'
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            readOnly:
                              description: 'readOnly specifies a read-only configuration for the volume.

                                Defaults to false (read/write).'
                              type: boolean
                            volumeAttributes:
                              additionalProperties:
                                type: string
                              description: 'volumeAttributes stores driver-specific properties that are passed to the CSI

                                driver. Consult your driver''s documentation for supported values.'
                              type: object
                          required:
                          - driver
                          type: object
                        downwardAPI:
                          description: downwardAPI represents downward API about the pod that should populate this volume
                          properties:
                            defaultMode:
                              description: 'Optional: mode bits to use on created files by default. Must be a

                                Optional: mode bits used to set permissions on created files by default.

                                Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                Defaults to 0644.

                                Directories within the path are not affected by this setting.

                                This might be in conflict with other options that affect the file

                                mode, like fsGroup, and the result can be other mode bits set.'
                              format: int32
                              type: integer
                            items:
                              description: Items is a list of downward API volume file
                              items:
                                description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                properties:
                                  fieldRef:
                                    description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                    properties:
                                      apiVersion:
                                        description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                        type: string
                                      fieldPath:
                                        description: Path of the field to select in the specified API version.
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  mode:
                                    description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                      between 0000 and 0777 or a decimal value between 0 and 511.

                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                      If not specified, the volume defaultMode will be used.

                                      This might be in conflict with other options that affect the file

                                      mode, like fsGroup, and the result can be other mode bits set.'
                                    format: int32
                                    type: integer
                                  path:
                                    description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                    type: string
                                  resourceFieldRef:
                                    description: 'Selects a resource of the container: only resources limits and requests

                                      (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                    properties:
                                      containerName:
                                        description: 'Container name: required for volumes, optional for env vars'
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Specifies the output format of the exposed resources, defaults to "1"
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        description: 'Required: resource to select'
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        emptyDir:
                          description: 'emptyDir represents a temporary directory that shares a pod''s lifetime.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                          properties:
                            medium:
                              description: 'medium represents what type of storage medium should back this directory.

                                The default is "" which means to use the node''s default medium.

                                Must be an empty string (default) or Memory.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                              type: string
                            sizeLimit:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume.

                                The size limit is also applicable for memory medium.

                                The maximum usage on memory medium EmptyDir would be the minimum value between

                                the SizeLimit specified here and the sum of memory limits of all containers in a pod.

                                The default is nil which means that the limit is undefined.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                          type: object
                        ephemeral:
                          description: "ephemeral represents a volume that is handled by a cluster storage driver.\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n   tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\n   information on the connection between this volume type\n   and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time."
                          properties:
                            volumeClaimTemplate:
                              description: 'Will be used to create a stand-alone PVC to provision the volume.

                                The pod in which this EphemeralVolumeSource is embedded will be the

                                owner of the PVC, i.e. the PVC will be deleted together with the

                                pod.  The name of the PVC will be `<pod name>-<volume name>` where

                                `<volume name>` is the name from the `PodSpec.Volumes` array

                                entry. Pod validation will reject the pod if the concatenated name

                                is not valid for a PVC (for example, too long).


                                An existing PVC with that name that is not owned by the pod

                                will *not* be used for the pod to avoid using an unrelated

                                volume by mistake. Starting the pod is then blocked until

                                the unrelated PVC is removed. If such a pre-created PVC is

                                meant to be used by the pod, the PVC has to updated with an

                                owner reference to the pod once the pod exists. Normally

                                this should not be necessary, but it may be useful when

                                manually reconstructing a broken cluster.


                                This field is read-only and no changes will be made by Kubernetes

                                to the PVC after it has been created.


                                Required, must not be nil.'
                              properties:
                                metadata:
                                  description: 'May contain labels and annotations that will be copied into the PVC

                                    when creating it. No other fields are allowed and will be rejected during

                                    validation.'
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    finalizers:
                                      items:
                                        type: string
                                      type: array
                                    generateName:
                                      type: string
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  type: object
                                spec:
                                  description: 'The specification for the PersistentVolumeClaim. The entire content is

                                    copied unchanged into the PVC that gets created from this

                                    template. The same fields as in a PersistentVolumeClaim

                                    are also valid here.'
                                  properties:
                                    accessModes:
                                      description: 'accessModes contains the desired access modes the volume should have.

                                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    dataSource:
                                      description: 'dataSource field can be used to specify either:

                                        * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                        * An existing PVC (PersistentVolumeClaim)

                                        If the provisioner or an external controller can support the specified data source,

                                        it will create a new volume based on the contents of the specified data source.

                                        When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                        and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                        If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                      properties:
                                        apiGroup:
                                          description: 'APIGroup is the group for the resource being referenced.

                                            If APIGroup is not specified, the specified Kind must be in the core API group.

                                            For any other third-party types, APIGroup is required.'
                                          type: string
                                        kind:
                                          description: Kind is the type of resource being referenced
                                          type: string
                                        name:
                                          description: Name is the name of resource being referenced
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    dataSourceRef:
                                      description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                                      properties:
                                        apiGroup:
                                          description: 'APIGroup is the group for the resource being referenced.

                                            If APIGroup is not specified, the specified Kind must be in the core API group.

                                            For any other third-party types, APIGroup is required.'
                                          type: string
                                        kind:
                                          description: Kind is the type of resource being referenced
                                          type: string
                                        name:
                                          description: Name is the name of resource being referenced
                                          type: string
                                        namespace:
                                          description: 'Namespace is the namespace of resource being referenced

                                            Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                            (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    resources:
                                      description: 'resources represents the minimum resources the volume should have.

                                        If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                        that are lower than previous value but must still be higher than capacity recorded in the

                                        status field of the claim.

                                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                      properties:
                                        limits:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          description: 'Limits describes the maximum amount of compute resources allowed.

                                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                          type: object
                                        requests:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          description: 'Requests describes the minimum amount of compute resources required.

                                            If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                            otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                          type: object
                                      type: object
                                    selector:
                                      description: selector is a label query over volumes to consider for binding.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                          items:
                                            description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                              relates the key and values.'
                                            properties:
                                              key:
                                                description: key is the label key that the selector applies to.
                                                type: string
                                              operator:
                                                description: 'operator represents a key''s relationship to a set of values.

                                                  Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                type: string
                                              values:
                                                description: 'values is an array of string values. If the operator is In or NotIn,

                                                  the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                  the values array must be empty. This array is replaced during a strategic

                                                  merge patch.'
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                            map is equivalent to an element of matchExpressions, whose key field is "key", the

                                            operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    storageClassName:
                                      description: 'storageClassName is the name of the StorageClass required by the claim.

                                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                      type: string
                                    volumeAttributesClassName:
                                      description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                        If specified, the CSI driver will create or update the volume with the attributes defined

                                        in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                        it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                        will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                        If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                        will be set by the persistentvolume controller if it exists.

                                        If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                        set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                        exists.

                                        More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                        (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                                      type: string
                                    volumeMode:
                                      description: 'volumeMode defines what type of volume is required by the claim.

                                        Value of Filesystem is implied when not included in claim spec.'
                                      type: string
                                    volumeName:
                                      description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                      type: string
                                  type: object
                              required:
                              - spec
                              type: object
                          type: object
                        fc:
                          description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
                          properties:
                            fsType:
                              description: 'fsType is the filesystem type to mount.

                                Must be a filesystem type supported by the host operating system.

                                Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                              type: string
                            lun:
                              description: 'lun is Optional: FC target lun number'
                              format: int32
                              type: integer
                            readOnly:
                              description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.'
                              type: boolean
                            targetWWNs:
                              description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            wwids:
                              description: 'wwids Optional: FC volume world wide identifiers (wwids)

                                Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        flexVolume:
                          description: 'flexVolume represents a generic volume resource that is

                            provisioned/attached using an exec based plugin.

                            Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.'
                          properties:
                            driver:
                              description: driver is the name of the driver to use for this volume.
                              type: string
                            fsType:
                              description: 'fsType is the filesystem type to mount.

                                Must be a filesystem type supported by the host operating system.

                                Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.'
                              type: string
                            options:
                              additionalProperties:
                                type: string
                              description: 'options is Optional: this field holds extra command options if any.'
                              type: object
                            readOnly:
                              description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.'
                              type: boolean
                            secretRef:
                              description: 'secretRef is Optional: secretRef is reference to the secret object containing

                                sensitive information to pass to the plugin scripts. This may be

                                empty if no secret object is specified. If the secret object

                                contains more than one secret, all secrets are passed to the plugin

                                scripts.'
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - driver
                          type: object
                        flocker:
                          description: 'flocker represents a Flocker volume attached to a kubelet''s host machine. This depends on the Flocker control service being running.

                            Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.'
                          properties:
                            datasetName:
                              description: 'datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker

                                should be considered as deprecated'
                              type: string
                            datasetUUID:
                              description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
                              type: string
                          type: object
                        gcePersistentDisk:
                          description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a

                            kubelet''s host machine and then exposed to the pod.

                            Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree

                            gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          properties:
                            fsType:
                              description: 'fsType is filesystem type of the volume that you want to mount.

                                Tip: Ensure that the filesystem type is supported by the host operating system.

                                Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                              type: string
                            partition:
                              description: 'partition is the partition in the volume that you want to mount.

                                If omitted, the default is to mount by volume name.

                                Examples: For volume /dev/sda1, you specify the partition as "1".

                                Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                              format: int32
                              type: integer
                            pdName:
                              description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                              type: string
                            readOnly:
                              description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                Defaults to false.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                              type: boolean
                          required:
                          - pdName
                          type: object
                        gitRepo:
                          description: 'gitRepo represents a git repository at a particular revision.

                            Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an

                            EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir

                            into the Pod''s container.'
                          properties:
                            directory:
                              description: 'directory is the target directory name.

                                Must not contain or start with ''..''.  If ''.'' is supplied, the volume directory will be the

                                git repository.  Otherwise, if specified, the volume will contain the git repository in

                                the subdirectory with the given name.'
                              type: string
                            repository:
                              description: repository is the URL
                              type: string
                            revision:
                              description: revision is the commit hash for the specified revision.
                              type: string
                          required:
                          - repository
                          type: object
                        glusterfs:
                          description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime.

                            Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md'
                          properties:
                            endpoints:
                              description: 'endpoints is the endpoint name that details Glusterfs topology.

                                More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                              type: string
                            path:
                              description: 'path is the Glusterfs volume path.

                                More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                              type: string
                            readOnly:
                              description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions.

                                Defaults to false.

                                More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                              type: boolean
                          required:
                          - endpoints
                          - path
                          type: object
                        hostPath:
                          description: 'hostPath represents a pre-existing file or directory on the host

                            machine that is directly exposed to the container. This is generally

                            used for system agents or other privileged things that are allowed

                            to see the host machine. Most containers will NOT need this.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                          properties:
                            path:
                              description: 'path of the directory on the host.

                                If the path is a symlink, it will follow the link to the real path.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                              type: string
                            type:
                              description: 'type for HostPath Volume

                                Defaults to ""

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                              type: string
                          required:
                          - path
                          type: object
                        image:
                          description: 'image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet''s host machine.

                            The volume is resolved at pod startup depending on which PullPolicy value is provided:


                            - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                            - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                            - IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.


                            The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.

                            A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.

                            The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.

                            The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.

                            The volume will be mounted read-only (ro) and non-executable files (noexec).

                            Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.

                            The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.'
                          properties:
                            pullPolicy:
                              description: 'Policy for pulling OCI objects. Possible values are:

                                Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                                Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                                IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.

                                Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.'
                              type: string
                            reference:
                              description: 'Required: Image or artifact reference to be used.

                                Behaves in the same way as pod.spec.containers[*].image.

                                Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.

                                More info: https://kubernetes.io/docs/concepts/containers/images

                                This field is optional to allow higher level config management to default or override

                                container images in workload controllers like Deployments and StatefulSets.'
                              type: string
                          type: object
                        iscsi:
                          description: 'iscsi represents an ISCSI Disk resource that is attached to a

                            kubelet''s host machine and then exposed to the pod.

                            More info: https://examples.k8s.io/volumes/iscsi/README.md'
                          properties:
                            chapAuthDiscovery:
                              description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
                              type: boolean
                            chapAuthSession:
                              description: chapAuthSession defines whether support iSCSI Session CHAP authentication
                              type: boolean
                            fsType:
                              description: 'fsType is the filesystem type of the volume that you want to mount.

                                Tip: Ensure that the filesystem type is supported by the host operating system.

                                Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi'
                              type: string
                            initiatorName:
                              description: 'initiatorName is the custom iSCSI Initiator Name.

                                If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface

                                <target portal>:<volume name> will be created for the connection.'
                              type: string
                            iqn:
                              description: iqn is the target iSCSI Qualified Name.
                              type: string
                            iscsiInterface:
                              default: default
                              description: 'iscsiInterface is the interface Name that uses an iSCSI transport.

                                Defaults to ''default'' (tcp).'
                              type: string
                            lun:
                              description: lun represents iSCSI Target Lun number.
                              format: int32
                              type: integer
                            portals:
                              description: 'portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port

                                is other than default (typically TCP ports 860 and 3260).'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            readOnly:
                              description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                Defaults to false.'
                              type: boolean
                            secretRef:
                              description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            targetPortal:
                              description: 'targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port

                                is other than default (typically TCP ports 860 and 3260).'
                              type: string
                          required:
                          - iqn
                          - lun
                          - targetPortal
                          type: object
                        name:
                          description: 'name of the volume.

                            Must be a DNS_LABEL and unique within the pod.

                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        nfs:
                          description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          properties:
                            path:
                              description: 'path that is exported by the NFS server.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                              type: string
                            readOnly:
                              description: 'readOnly here will force the NFS export to be mounted with read-only permissions.

                                Defaults to false.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                              type: boolean
                            server:
                              description: 'server is the hostname or IP address of the NFS server.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                              type: string
                          required:
                          - path
                          - server
                          type: object
                        persistentVolumeClaim:
                          description: 'persistentVolumeClaimVolumeSource represents a reference to a

                            PersistentVolumeClaim in the same namespace.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                          properties:
                            claimName:
                              description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.

                                More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                              type: string
                            readOnly:
                              description: 'readOnly Will force the ReadOnly setting in VolumeMounts.

                                Default false.'
                              type: boolean
                          required:
                          - claimName
                          type: object
                        photonPersistentDisk:
                          description: 'photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.

                            Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.'
                          properties:
                            fsType:
                              description: 'fsType is the filesystem type to mount.

                                Must be a filesystem type supported by the host operating system.

                                Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                              type: string
                            pdID:
                              description: pdID is the ID that identifies Photon Controller persistent disk
                              type: string
                          required:
                          - pdID
                          type: object
                        portworxVolume:
                          description: 'portworxVolume represents a portworx volume attached and mounted on kubelets host machine.

                            Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type

                            are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate

                            is on.'
                          properties:
                            fsType:
                              description: 'fSType represents the filesystem type to mount

                                Must be a filesystem type supported by the host operating system.

                                Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.'
                              type: string
                            readOnly:
                              description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.'
                              type: boolean
                            volumeID:
                              description: volumeID uniquely identifies a Portworx volume
                              type: string
                          required:
                          - volumeID
                          type: object
                        projected:
                          description: projected items for all in one resources secrets, configmaps, and downward API
                          properties:
                            defaultMode:
                              description: 'defaultMode are the mode bits used to set permissions on created files by default.

                                Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                Directories within the path are not affected by this setting.

                                This might be in conflict with other options that affect the file

                                mode, like fsGroup, and the result can be other mode bits set.'
                              format: int32
                              type: integer
                            sources:
                              description: 'sources is the list of volume projections. Each entry in this list

                                handles one source.'
                              items:
                                description: 'Projection that may be projected along with other supported volume types.

                                  Exactly one of these fields must be set.'
                                properties:
                                  clusterTrustBundle:
                                    description: 'ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field

                                      of ClusterTrustBundle objects in an auto-updating file.


                                      Alpha, gated by the ClusterTrustBundleProjection feature gate.


                                      ClusterTrustBundle objects can either be selected by name, or by the

                                      combination of signer name and a label selector.


                                      Kubelet performs aggressive normalization of the PEM contents written

                                      into the pod filesystem.  Esoteric PEM features such as inter-block

                                      comments and block headers are stripped.  Certificates are deduplicated.

                                      The ordering of certificates within the file is arbitrary, and Kubelet

                                      may change the order over time.'
                                    properties:
                                      labelSelector:
                                        description: 'Select all ClusterTrustBundles that match this label selector.  Only has

                                          effect if signerName is set.  Mutually-exclusive with name.  If unset,

                                          interpreted as "match nothing".  If set but empty, interpreted as "match

                                          everything".'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      name:
                                        description: 'Select a single ClusterTrustBundle by object name.  Mutually-exclusive

                                          with signerName and labelSelector.'
                                        type: string
                                      optional:
                                        description: 'If true, don''t block pod startup if the referenced ClusterTrustBundle(s)

                                          aren''t available.  If using name, then the named ClusterTrustBundle is

                                          allowed not to exist.  If using signerName, then the combination of

                                          signerName and labelSelector is allowed to match zero

                                          ClusterTrustBundles.'
                                        type: boolean
                                      path:
                                        description: Relative path from the volume root to write the bundle.
                                        type: string
                                      signerName:
                                        description: 'Select all ClusterTrustBundles that match this signer name.

                                          Mutually-exclusive with name.  The contents of all selected

                                          ClusterTrustBundles will be unified and deduplicated.'
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  configMap:
                                    description: configMap information about the configMap data to project
                                    properties:
                                      items:
                                        description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                          ConfigMap will be projected into the volume as a file whose name is the

                                          key and content is the value. If specified, the listed keys will be

                                          projected into the specified paths, and unlisted keys will not be

                                          present. If a key is specified which is not present in the ConfigMap,

                                          the volume setup will error unless it is marked optional. Paths must be

                                          relative and may not contain the ''..'' path or start with ''..''.'
                                        items:
                                          description: Maps a string key to a path within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is Optional: mode bits used to set permissions on this file.

                                                Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                If not specified, the volume defaultMode will be used.

                                                This might be in conflict with other options that affect the file

                                                mode, like fsGroup, and the result can be other mode bits set.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: 'path is the relative path of the file to map the key to.

                                                May not be an absolute path.

                                                May not contain the path element ''..''.

                                                May not start with the string ''..''.'
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: optional specify whether the ConfigMap or its keys must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  downwardAPI:
                                    description: downwardAPI information about the downwardAPI data to project
                                    properties:
                                      items:
                                        description: Items is a list of DownwardAPIVolume file
                                        items:
                                          description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                          properties:
                                            fieldRef:
                                              description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                              properties:
                                                apiVersion:
                                                  description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                                  type: string
                                                fieldPath:
                                                  description: Path of the field to select in the specified API version.
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            mode:
                                              description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                                between 0000 and 0777 or a decimal value between 0 and 511.

                                                YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                If not specified, the volume defaultMode will be used.

                                                This might be in conflict with other options that affect the file

                                                mode, like fsGroup, and the result can be other mode bits set.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                              type: string
                                            resourceFieldRef:
                                              description: 'Selects a resource of the container: only resources limits and requests

                                                (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                              properties:
                                                containerName:
                                                  description: 'Container name: required for volumes, optional for env vars'
                                                  type: string
                                                divisor:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  description: Specifies the output format of the exposed resources, defaults to "1"
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                resource:
                                                  description: 'Required: resource to select'
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  secret:
                                    description: secret information about the secret data to project
                                    properties:
                                      items:
                                        description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                          Secret will be projected into the volume as a file whose name is the

                                          key and content is the value. If specified, the listed keys will be

                                          projected into the specified paths, and unlisted keys will not be

                                          present. If a key is specified which is not present in the Secret,

                                          the volume setup will error unless it is marked optional. Paths must be

                                          relative and may not contain the ''..'' path or start with ''..''.'
                                        items:
                                          description: Maps a string key to a path within a volume.
                                          properties:
                                            key:
                                              description: key is the key to project.
                                              type: string
                                            mode:
                                              description: 'mode is Optional: mode bits used to set permissions on this file.

                                                Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                If not specified, the volume defaultMode will be used.

                                                This might be in conflict with other options that affect the file

                                                mode, like fsGroup, and the result can be other mode bits set.'
                                              format: int32
                                              type: integer
                                            path:
                                              description: 'path is the relative path of the file to map the key to.

                                                May not be an absolute path.

                                                May not contain the path element ''..''.

                                                May not start with the string ''..''.'
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: optional field specify whether the Secret or its key must be defined
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  serviceAccountToken:
                                    description: serviceAccountToken is information about the serviceAccountToken data to project
                                    properties:
                                      audience:
                                        description: 'audience is the intended audience of the token. A recipient of a token

                                          must identify itself with an identifier specified in the audience of the

                                          token, and otherwise should reject the token. The audience defaults to the

                                          identifier of the apiserver.'
                                        type: string
                                      expirationSeconds:
                                        description: 'expirationSeconds is the requested duration of validity of the service

                                          account token. As the token approaches expiration, the kubelet volume

                                          plugin will proactively rotate the service account token. The kubelet will

                                          start trying to rotate the token if the token is older than 80 percent of

                                          its time to live or if the token is older than 24 hours.Defaults to 1 hour

                                          and must be at least 10 minutes.'
                                        format: int64
                                        type: integer
                                      path:
                                        description: 'path is the path relative to the mount point of the file to project the

                                          token into.'
                                        type: string
                                    required:
                                    - path
                                    type: object
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        quobyte:
                          description: 'quobyte represents a Quobyte mount on the host that shares a pod''s lifetime.

                            Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.'
                          properties:
                            group:
                              description: 'group to map volume access to

                                Default is no group'
                              type: string
                            readOnly:
                              description: 'readOnly here will force the Quobyte volume to be mounted with read-only permissions.

                                Defaults to false.'
                              type: boolean
                            registry:
                              description: 'registry represents a single or multiple Quobyte Registry services

                                specified as a string as host:port pair (multiple entries are separated with commas)

                                which acts as the central registry for volumes'
                              type: string
                            tenant:
                              description: 'tenant owning the given Quobyte volume in the Backend

                                Used with dynamically provisioned Quobyte volumes, value is set by the plugin'
                              type: string
                            user:
                              description: 'user to map volume access to

                                Defaults to serivceaccount user'
                              type: string
                            volume:
                              description: volume is a string that references an already created Quobyte volume by name.
                              type: string
                          required:
                          - registry
                          - volume
                          type: object
                        rbd:
                          description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime.

                            Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.

                            More info: https://examples.k8s.io/volumes/rbd/README.md'
                          properties:
                            fsType:
                              description: 'fsType is the filesystem type of the volume that you want to mount.

                                Tip: Ensure that the filesystem type is supported by the host operating system.

                                Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd'
                              type: string
                            image:
                              description: 'image is the rados image name.

                                More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                              type: string
                            keyring:
                              default: /etc/ceph/keyring
                              description: 'keyring is the path to key ring for RBDUser.

                                Default is /etc/ceph/keyring.

                                More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                              type: string
                            monitors:
                              description: 'monitors is a collection of Ceph monitors.

                                More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            pool:
                              default: rbd
                              description: 'pool is the rados pool name.

                                Default is rbd.

                                More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                              type: string
                            readOnly:
                              description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                Defaults to false.

                                More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                              type: boolean
                            secretRef:
                              description: 'secretRef is name of the authentication secret for RBDUser. If provided

                                overrides keyring.

                                Default is nil.

                                More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            user:
                              default: admin
                              description: 'user is the rados user name.

                                Default is admin.

                                More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                              type: string
                          required:
                          - image
                          - monitors
                          type: object
                        scaleIO:
                          description: 'scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

                            Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.'
                          properties:
                            fsType:
                              default: xfs
                              description: 'fsType is the filesystem type to mount.

                                Must be a filesystem type supported by the host operating system.

                                Ex. "ext4", "xfs", "ntfs".

                                Default is "xfs".'
                              type: string
                            gateway:
                              description: gateway is the host address of the ScaleIO API Gateway.
                              type: string
                            protectionDomain:
                              description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
                              type: string
                            readOnly:
                              description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.'
                              type: boolean
                            secretRef:
                              description: 'secretRef references to the secret for ScaleIO user and other

                                sensitive information. If this is not provided, Login operation will fail.'
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            sslEnabled:
                              description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
                              type: boolean
                            storageMode:
                              default: ThinProvisioned
                              description: 'storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

                                Default is ThinProvisioned.'
                              type: string
                            storagePool:
                              description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
                              type: string
                            system:
                              description: system is the name of the storage system as configured in ScaleIO.
                              type: string
                            volumeName:
                              description: 'volumeName is the name of a volume already created in the ScaleIO system

                                that is associated with this volume source.'
                              type: string
                          required:
                          - gateway
                          - secretRef
                          - system
                          type: object
                        secret:
                          description: 'secret represents a secret that should populate this volume.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                          properties:
                            defaultMode:
                              description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.

                                Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                YAML accepts both octal and decimal values, JSON requires decimal values

                                for mode bits. Defaults to 0644.

                                Directories within the path are not affected by this setting.

                                This might be in conflict with other options that affect the file

                                mode, like fsGroup, and the result can be other mode bits set.'
                              format: int32
                              type: integer
                            items:
                              description: 'items If unspecified, each key-value pair in the Data field of the referenced

                                Secret will be projected into the volume as a file whose name is the

                                key and content is the value. If specified, the listed keys will be

                                projected into the specified paths, and unlisted keys will not be

                                present. If a key is specified which is not present in the Secret,

                                the volume setup will error unless it is marked optional. Paths must be

                                relative and may not contain the ''..'' path or start with ''..''.'
                              items:
                                description: Maps a string key to a path within a volume.
                                properties:
                                  key:
                                    description: key is the key to project.
                                    type: string
                                  mode:
                                    description: 'mode is Optional: mode bits used to set permissions on this file.

                                      Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                      YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                      If not specified, the volume defaultMode will be used.

                                      This might be in conflict with other options that affect the file

                                      mode, like fsGroup, and the result can be other mode bits set.'
                                    format: int32
                                    type: integer
                                  path:
                                    description: 'path is the relative path of the file to map the key to.

                                      May not be an absolute path.

                                      May not contain the path element ''..''.

                                      May not start with the string ''..''.'
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            optional:
                              description: optional field specify whether the Secret or its keys must be defined
                              type: boolean
                            secretName:
                              description: 'secretName is the name of the secret in the pod''s namespace to use.

                                More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                              type: string
                          type: object
                        storageos:
                          description: 'storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

                            Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.'
                          properties:
                            fsType:
                              description: 'fsType is the filesystem type to mount.

                                Must be a filesystem type supported by the host operating system.

                                Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                              type: string
                            readOnly:
                              description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                the ReadOnly setting in VolumeMounts.'
                              type: boolean
                            secretRef:
                              description: 'secretRef specifies the secret to use for obtaining the StorageOS API

                                credentials.  If not specified, default values will be attempted.'
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            volumeName:
                              description: 'volumeName is the human-readable name of the StorageOS volume.  Volume

                                names are only unique within a namespace.'
                              type: string
                            volumeNamespace:
                              description: 'volumeNamespace specifies the scope of the volume within StorageOS.  If no

                                namespace is specified then the Pod''s namespace will be used.  This allows the

                                Kubernetes name scoping to be mirrored within StorageOS for tighter integration.

                                Set VolumeName to any name to override the default behaviour.

                                Set to "default" if you are not using namespaces within StorageOS.

                                Namespaces that do not pre-exist within StorageOS will be created.'
                              type: string
                          type: object
                        vsphereVolume:
                          description: 'vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.

                            Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type

                            are redirected to the csi.vsphere.vmware.com CSI driver.'
                          properties:
                            fsType:
                              description: 'fsType is filesystem type to mount.

                                Must be a filesystem type supported by the host operating system.

                                Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                              type: string
                            storagePolicyID:
                              description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
                              type: string
                            storagePolicyName:
                              description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
                              type: string
                            volumePath:
                              description: volumePath is the path that identifies vSphere volume vmdk
                              type: string
                          required:
                          - volumePath
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  workflowMetadata:
                    description: WorkflowMetadata contains some metadata of the workflow to refer to
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                      labelsFrom:
                        additionalProperties:
                          properties:
                            expression:
                              type: string
                          required:
                          - expression
                          type: object
                        type: object
                    type: object
                  workflowTemplateRef:
                    description: WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution
                    properties:
                      clusterScope:
                        description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                        type: boolean
                      name:
                        description: Name is the resource name of the workflow template.
                        type: string
                    type: object
                type: object
            required:
            - schedules
            - workflowSpec
            type: object
          status:
            description: 'CronWorkflowStatus is the status of a CronWorkflow.

              All nested field descriptions have been dropped due to Kubernetes size limitations.'
            properties:
              active:
                items:
                  properties:
                    apiVersion:
                      type: string
                    fieldPath:
                      type: string
                    kind:
                      type: string
                    name:
                      type: string
                    namespace:
                      type: string
                    resourceVersion:
                      type: string
                    uid:
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                type: array
              conditions:
                items:
                  properties:
                    message:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  type: object
                type: array
              failed:
                format: int64
                type: integer
              lastScheduledTime:
                format: date-time
                type: string
              phase:
                type: string
              succeeded:
                format: int64
                type: integer
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  name: workflowartifactgctasks.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowArtifactGCTask
    listKind: WorkflowArtifactGCTaskList
    plural: workflowartifactgctasks
    shortNames:
    - wfat
    singular: workflowartifactgctask
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: WorkflowArtifactGCTask specifies the Artifacts that need to be deleted as well as the status of deletion
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object.

              Servers should convert recognized schemas to the latest internal value, and

              may reject unrecognized values.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents.

              Servers may infer this from the endpoint the client submits requests to.

              Cannot be updated.

              In CamelCase.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: 'ArtifactGCSpec specifies the Artifacts that need to be deleted.

              All nested field descriptions have been dropped due to Kubernetes size limitations.'
            properties:
              artifactsByNode:
                additionalProperties:
                  properties:
                    archiveLocation:
                      properties:
                        archiveLogs:
                          type: boolean
                        artifactory:
                          properties:
                            passwordSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              type: string
                            usernameSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          properties:
                            accountKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              type: string
                            container:
                              type: string
                            endpoint:
                              type: string
                            useSDKCreds:
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        gcs:
                          properties:
                            bucket:
                              type: string
                            key:
                              type: string
                            serviceAccountKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          properties:
                            branch:
                              type: string
                            depth:
                              format: int64
                              type: integer
                            disableSubmodules:
                              type: boolean
                            fetch:
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              type: boolean
                            insecureSkipTLS:
                              type: boolean
                            passwordSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              type: string
                            revision:
                              type: string
                            singleBranch:
                              type: boolean
                            sshPrivateKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        hdfs:
                          properties:
                            addresses:
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              type: string
                            force:
                              type: boolean
                            hdfsUser:
                              type: string
                            krbCCacheSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              type: string
                            krbServicePrincipalName:
                              type: string
                            krbUsername:
                              type: string
                            path:
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          properties:
                            auth:
                              properties:
                                basicAuth:
                                  properties:
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  properties:
                                    clientCertSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  properties:
                                    clientIDSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              type: string
                          required:
                          - url
                          type: object
                        oss:
                          properties:
                            accessKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              type: string
                            createBucketIfNotPresent:
                              type: boolean
                            endpoint:
                              type: string
                            key:
                              type: string
                            lifecycleRule:
                              properties:
                                markDeletionAfterDays:
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              type: string
                            useSDKCreds:
                              type: boolean
                          required:
                          - key
                          type: object
                        plugin:
                          properties:
                            configuration:
                              type: string
                            connectionTimeoutSeconds:
                              format: int32
                              type: integer
                            key:
                              type: string
                            name:
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          properties:
                            data:
                              type: string
                          required:
                          - data
                          type: object
                        s3:
                          properties:
                            accessKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              type: string
                            caSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              properties:
                                objectLocking:
                                  type: boolean
                              type: object
                            encryptionOptions:
                              properties:
                                enableEncryption:
                                  type: boolean
                                kmsEncryptionContext:
                                  type: string
                                kmsKeyId:
                                  type: string
                                serverSideCustomerKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              type: string
                            insecure:
                              type: boolean
                            key:
                              type: string
                            region:
                              type: string
                            roleARN:
                              type: string
                            secretKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              type: boolean
                          type: object
                      type: object
                    artifacts:
                      additionalProperties:
                        properties:
                          archive:
                            properties:
                              none:
                                type: object
                              tar:
                                properties:
                                  compressionLevel:
                                    format: int32
                                    type: integer
                                type: object
                              zip:
                                type: object
                            type: object
                          archiveLogs:
                            type: boolean
                          artifactGC:
                            properties:
                              podMetadata:
                                properties:
                                  annotations:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  labels:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                              serviceAccountName:
                                type: string
                              strategy:
                                enum:
                                - ''
                                - OnWorkflowCompletion
                                - OnWorkflowDeletion
                                - Never
                                type: string
                            type: object
                          artifactory:
                            properties:
                              passwordSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              url:
                                type: string
                              usernameSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - url
                            type: object
                          azure:
                            properties:
                              accountKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              blob:
                                type: string
                              container:
                                type: string
                              endpoint:
                                type: string
                              useSDKCreds:
                                type: boolean
                            required:
                            - blob
                            - container
                            - endpoint
                            type: object
                          deleted:
                            type: boolean
                          from:
                            type: string
                          fromExpression:
                            type: string
                          gcs:
                            properties:
                              bucket:
                                type: string
                              key:
                                type: string
                              serviceAccountKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - key
                            type: object
                          git:
                            properties:
                              branch:
                                type: string
                              depth:
                                format: int64
                                type: integer
                              disableSubmodules:
                                type: boolean
                              fetch:
                                items:
                                  type: string
                                type: array
                              insecureIgnoreHostKey:
                                type: boolean
                              insecureSkipTLS:
                                type: boolean
                              passwordSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              repo:
                                type: string
                              revision:
                                type: string
                              singleBranch:
                                type: boolean
                              sshPrivateKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              usernameSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - repo
                            type: object
                          globalName:
                            type: string
                          hdfs:
                            properties:
                              addresses:
                                items:
                                  type: string
                                type: array
                              dataTransferProtection:
                                type: string
                              force:
                                type: boolean
                              hdfsUser:
                                type: string
                              krbCCacheSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              krbConfigConfigMap:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              krbKeytabSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              krbRealm:
                                type: string
                              krbServicePrincipalName:
                                type: string
                              krbUsername:
                                type: string
                              path:
                                type: string
                            required:
                            - path
                            type: object
                          http:
                            properties:
                              auth:
                                properties:
                                  basicAuth:
                                    properties:
                                      passwordSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      usernameSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  clientCert:
                                    properties:
                                      clientCertSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      clientKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  oauth2:
                                    properties:
                                      clientIDSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      clientSecretSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      endpointParams:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - key
                                          type: object
                                        type: array
                                      scopes:
                                        items:
                                          type: string
                                        type: array
                                      tokenURLSecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                type: object
                              headers:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              url:
                                type: string
                            required:
                            - url
                            type: object
                          mode:
                            format: int32
                            maximum: 511
                            minimum: 0
                            type: integer
                          name:
                            pattern: ^[-a-zA-Z0-9_{}.]+$
                            type: string
                          optional:
                            type: boolean
                          oss:
                            properties:
                              accessKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              bucket:
                                type: string
                              createBucketIfNotPresent:
                                type: boolean
                              endpoint:
                                type: string
                              key:
                                type: string
                              lifecycleRule:
                                properties:
                                  markDeletionAfterDays:
                                    format: int32
                                    type: integer
                                  markInfrequentAccessAfterDays:
                                    format: int32
                                    type: integer
                                type: object
                              secretKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              securityToken:
                                type: string
                              useSDKCreds:
                                type: boolean
                            required:
                            - key
                            type: object
                          path:
                            type: string
                          plugin:
                            properties:
                              configuration:
                                type: string
                              connectionTimeoutSeconds:
                                format: int32
                                type: integer
                              key:
                                type: string
                              name:
                                type: string
                            required:
                            - key
                            type: object
                          raw:
                            properties:
                              data:
                                type: string
                            required:
                            - data
                            type: object
                          recurseMode:
                            type: boolean
                          s3:
                            properties:
                              accessKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              bucket:
                                type: string
                              caSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              createBucketIfNotPresent:
                                properties:
                                  objectLocking:
                                    type: boolean
                                type: object
                              encryptionOptions:
                                properties:
                                  enableEncryption:
                                    type: boolean
                                  kmsEncryptionContext:
                                    type: string
                                  kmsKeyId:
                                    type: string
                                  serverSideCustomerKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              endpoint:
                                type: string
                              insecure:
                                type: boolean
                              key:
                                type: string
                              region:
                                type: string
                              roleARN:
                                type: string
                              secretKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              sessionTokenSecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              useSDKCreds:
                                type: boolean
                            type: object
                          subPath:
                            type: string
                        required:
                        - name
                        type: object
                      type: object
                  type: object
                type: object
            type: object
          status:
            description: ArtifactGCStatus describes the result of the deletion
            properties:
              artifactResultsByNode:
                additionalProperties:
                  description: ArtifactResultNodeStatus describes the result of the deletion on a given node
                  properties:
                    artifactResults:
                      additionalProperties:
                        description: ArtifactResult describes the result of attempting to delete a given Artifact
                        properties:
                          error:
                            description: Error is an optional error message which should be set if Success==false
                            type: string
                          name:
                            description: Name is the name of the Artifact
                            type: string
                          success:
                            description: Success describes whether the deletion succeeded
                            type: boolean
                        required:
                        - name
                        type: object
                      description: ArtifactResults maps Artifact name to result of the deletion
                      type: object
                  type: object
                description: ArtifactResultsByNode maps Node name to result
                type: object
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  name: workfloweventbindings.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowEventBinding
    listKind: WorkflowEventBindingList
    plural: workfloweventbindings
    shortNames:
    - wfeb
    singular: workfloweventbinding
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: WorkflowEventBinding is the definition of an event resource
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object.

              Servers should convert recognized schemas to the latest internal value, and

              may reject unrecognized values.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents.

              Servers may infer this from the endpoint the client submits requests to.

              Cannot be updated.

              In CamelCase.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              event:
                description: Event is the event to bind to
                properties:
                  selector:
                    description: Selector (https://github.com/expr-lang/expr) that we must must match the event. E.g. `payload.message == "test"`
                    type: string
                required:
                - selector
                type: object
              submit:
                description: Submit is the workflow template to submit
                properties:
                  arguments:
                    description: Arguments extracted from the event and then set as arguments to the workflow created.
                    properties:
                      artifacts:
                        description: Artifacts is the list of artifacts to pass to the template or workflow
                        items:
                          description: Artifact indicates an artifact to place at a specified path
                          properties:
                            archive:
                              description: Archive controls how the artifact will be saved to the artifact repository.
                              properties:
                                none:
                                  description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                    files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                    save/load the directory appropriately.'
                                  type: object
                                tar:
                                  description: TarStrategy will tar and gzip the file or directory when saving
                                  properties:
                                    compressionLevel:
                                      description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                        Defaults to gzip.DefaultCompression.'
                                      format: int32
                                      type: integer
                                  type: object
                                zip:
                                  description: ZipStrategy will unzip zipped input artifacts
                                  type: object
                              type: object
                            archiveLogs:
                              description: ArchiveLogs indicates if the container logs should be archived
                              type: boolean
                            artifactGC:
                              description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                              properties:
                                podMetadata:
                                  description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                serviceAccountName:
                                  description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                  type: string
                                strategy:
                                  description: Strategy is the strategy to use.
                                  enum:
                                  - ''
                                  - OnWorkflowCompletion
                                  - OnWorkflowDeletion
                                  - Never
                                  type: string
                              type: object
                            artifactory:
                              description: Artifactory contains artifactory artifact location details
                              properties:
                                passwordSecret:
                                  description: PasswordSecret is the secret selector to the repository password
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  description: URL of the artifact
                                  type: string
                                usernameSecret:
                                  description: UsernameSecret is the secret selector to the repository username
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              description: Azure contains Azure Storage artifact location details
                              properties:
                                accountKeySecret:
                                  description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                  type: string
                                container:
                                  description: Container is the container where resources will be stored
                                  type: string
                                endpoint:
                                  description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                  type: string
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            deleted:
                              description: Has this been deleted?
                              type: boolean
                            from:
                              description: From allows an artifact to reference an artifact from a previous step
                              type: string
                            fromExpression:
                              description: FromExpression, if defined, is evaluated to specify the value for the artifact
                              type: string
                            gcs:
                              description: GCS contains GCS artifact location details
                              properties:
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                key:
                                  description: Key is the path in the bucket where the artifact resides
                                  type: string
                                serviceAccountKeySecret:
                                  description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              description: Git contains git artifact location details
                              properties:
                                branch:
                                  description: Branch is the branch to fetch when `SingleBranch` is enabled
                                  type: string
                                depth:
                                  description: 'Depth specifies clones/fetches should be shallow and include the given

                                    number of commits from the branch tip'
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  description: DisableSubmodules disables submodules during git clone
                                  type: boolean
                                fetch:
                                  description: Fetch specifies a number of refs that should be fetched before checkout
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                  type: boolean
                                insecureSkipTLS:
                                  description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                  type: boolean
                                passwordSecret:
                                  description: PasswordSecret is the secret selector to the repository password
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  description: Repo is the git repository
                                  type: string
                                revision:
                                  description: Revision is the git commit, tag, branch to checkout
                                  type: string
                                singleBranch:
                                  description: SingleBranch enables single branch clone, using the `branch` parameter
                                  type: boolean
                                sshPrivateKeySecret:
                                  description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  description: UsernameSecret is the secret selector to the repository username
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            globalName:
                              description: 'GlobalName exports an output artifact to the global scope, making it available as

                                ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                              type: string
                            hdfs:
                              description: HDFS contains HDFS artifact location details
                              properties:
                                addresses:
                                  description: Addresses is accessible addresses of HDFS name nodes
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                    It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                  type: string
                                force:
                                  description: Force copies a file forcibly even if it exists
                                  type: boolean
                                hdfsUser:
                                  description: 'HDFSUser is the user to access HDFS file system.

                                    It is ignored if either ccache or keytab is used.'
                                  type: string
                                krbCCacheSecret:
                                  description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                    Either ccache or keytab can be set to use Kerberos.'
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  description: 'KrbConfig is the configmap selector for Kerberos config as string

                                    It must be set if either ccache or keytab is used.'
                                  properties:
                                    key:
                                      description: The key to select.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                    Either ccache or keytab can be set to use Kerberos.'
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                    It must be set if keytab is used.'
                                  type: string
                                krbServicePrincipalName:
                                  description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                    It must be set if either ccache or keytab is used.'
                                  type: string
                                krbUsername:
                                  description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                    It must be set if keytab is used.'
                                  type: string
                                path:
                                  description: Path is a file path in HDFS
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              description: HTTP contains HTTP artifact location details
                              properties:
                                auth:
                                  description: Auth contains information for client authentication
                                  properties:
                                    basicAuth:
                                      description: BasicAuth describes the secret selectors required for basic authentication
                                      properties:
                                        passwordSecret:
                                          description: PasswordSecret is the secret selector to the repository password
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          description: UsernameSecret is the secret selector to the repository username
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      description: ClientCertAuth holds necessary information for client authentication via certificates
                                      properties:
                                        clientCertSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                      properties:
                                        clientIDSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                            properties:
                                              key:
                                                description: Name is the header name
                                                type: string
                                              value:
                                                description: Value is the literal value to use for the header
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          description: SecretKeySelector selects a key of a Secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                  items:
                                    description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                    properties:
                                      name:
                                        description: Name is the header name
                                        type: string
                                      value:
                                        description: Value is the literal value to use for the header
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  description: URL of the artifact
                                  type: string
                              required:
                              - url
                              type: object
                            mode:
                              description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                Set when loading input artifacts. It is recommended to set the mode value

                                to ensure the artifact has the expected permissions in your container.'
                              format: int32
                              maximum: 511
                              minimum: 0
                              type: integer
                            name:
                              description: name of the artifact. must be unique within a template's inputs/outputs.
                              pattern: ^[-a-zA-Z0-9_{}.]+$
                              type: string
                            optional:
                              description: Make Artifacts optional, if Artifacts doesn't generate or exist
                              type: boolean
                            oss:
                              description: OSS contains OSS artifact location details
                              properties:
                                accessKeySecret:
                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                createBucketIfNotPresent:
                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                  type: boolean
                                endpoint:
                                  description: Endpoint is the hostname of the bucket endpoint
                                  type: string
                                key:
                                  description: Key is the path in the bucket where the artifact resides
                                  type: string
                                lifecycleRule:
                                  description: LifecycleRule specifies how to manage bucket's lifecycle
                                  properties:
                                    markDeletionAfterDays:
                                      description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                  type: string
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              required:
                              - key
                              type: object
                            path:
                              description: Path is the container path to the artifact
                              type: string
                            plugin:
                              description: Plugin contains plugin artifact location details
                              properties:
                                configuration:
                                  description: Configuration is the plugin defined configuration for the artifact driver plugin
                                  type: string
                                connectionTimeoutSeconds:
                                  description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                  format: int32
                                  type: integer
                                key:
                                  description: Key is the path in the artifact repository where the artifact resides
                                  type: string
                                name:
                                  description: Name is the name of the artifact driver plugin
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              description: Raw contains raw artifact location details
                              properties:
                                data:
                                  description: Data is the string contents of the artifact
                                  type: string
                              required:
                              - data
                              type: object
                            recurseMode:
                              description: If mode is set, apply the permission recursively into the artifact if it is a folder
                              type: boolean
                            s3:
                              description: S3 contains S3 artifact location details
                              properties:
                                accessKeySecret:
                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  description: Bucket is the name of the bucket
                                  type: string
                                caSecret:
                                  description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                  properties:
                                    objectLocking:
                                      description: ObjectLocking Enable object locking
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  description: S3EncryptionOptions used to determine encryption options during s3 operations
                                  properties:
                                    enableEncryption:
                                      description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                      type: boolean
                                    kmsEncryptionContext:
                                      description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                      type: string
                                    kmsKeyId:
                                      description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                      type: string
                                    serverSideCustomerKeySecret:
                                      description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  description: Endpoint is the hostname of the bucket endpoint
                                  type: string
                                insecure:
                                  description: Insecure will connect to the service with TLS
                                  type: boolean
                                key:
                                  description: Key is the key in the bucket where the artifact resides
                                  type: string
                                region:
                                  description: Region contains the optional bucket region
                                  type: string
                                roleARN:
                                  description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                  type: string
                                secretKeySecret:
                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                  type: boolean
                              type: object
                            subPath:
                              description: SubPath allows an artifact to be sourced from a subpath within the specified source
                              type: string
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: array
                      parameters:
                        description: Parameters is the list of parameters to pass to the template or workflow
                        items:
                          description: Parameter indicate a passed string parameter to a service template with an optional default value
                          properties:
                            default:
                              description: Default is the default value to use for an input parameter if a value was not supplied
                              type: string
                            description:
                              description: Description is the parameter description
                              type: string
                            enum:
                              description: Enum holds a list of string values to choose from, for the actual value of the parameter
                              items:
                                description: '* It''s JSON type is just string.

                                  * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                  * It will marshall back to string - marshalling is not symmetric.'
                                type: string
                              minItems: 1
                              type: array
                            globalName:
                              description: 'GlobalName exports an output parameter to the global scope, making it available as

                                ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                              type: string
                            name:
                              description: Name is the parameter name
                              pattern: ^[-a-zA-Z0-9_]+$
                              type: string
                            value:
                              description: 'Value is the literal value to use for the parameter.

                                If specified in the context of an input parameter, any passed values take precedence over the specified value'
                              type: string
                            valueFrom:
                              description: ValueFrom is the source for the output parameter's value
                              properties:
                                configMapKeyRef:
                                  description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                  properties:
                                    key:
                                      description: The key to select.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                default:
                                  description: Default specifies a value to be used if retrieving the value from the specified source fails
                                  type: string
                                event:
                                  description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                  type: string
                                expression:
                                  description: Expression, if defined, is evaluated to specify the value for the parameter
                                  type: string
                                jqFilter:
                                  description: JQFilter expression against the resource object in resource templates
                                  type: string
                                jsonPath:
                                  description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                  type: string
                                parameter:
                                  description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                    (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                  type: string
                                path:
                                  description: Path in the container to retrieve an output parameter value from in container templates
                                  type: string
                                supplied:
                                  description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                    type: object
                  metadata:
                    description: Metadata optional means to customize select fields of the workflow metadata
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      finalizers:
                        items:
                          type: string
                        type: array
                      generateName:
                        type: string
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                      name:
                        type: string
                      namespace:
                        type: string
                    type: object
                  workflowTemplateRef:
                    description: WorkflowTemplateRef the workflow template to submit
                    properties:
                      clusterScope:
                        description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                        type: boolean
                      name:
                        description: Name is the resource name of the workflow template.
                        type: string
                    type: object
                required:
                - workflowTemplateRef
                type: object
            required:
            - event
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  name: workflows.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: Workflow
    listKind: WorkflowList
    plural: workflows
    shortNames:
    - wf
    singular: workflow
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Status of the workflow
      jsonPath: .status.phase
      name: Status
      type: string
    - description: When the workflow was started
      format: date-time
      jsonPath: .status.startedAt
      name: Age
      type: date
    - description: Human readable message indicating details about why the workflow is in this condition.
      jsonPath: .status.message
      name: Message
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Workflow is the definition of a workflow resource
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object.

              Servers should convert recognized schemas to the latest internal value, and

              may reject unrecognized values.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents.

              Servers may infer this from the endpoint the client submits requests to.

              Cannot be updated.

              In CamelCase.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: WorkflowSpec is the specification of a Workflow.
            properties:
              activeDeadlineSeconds:
                description: 'Optional duration in seconds relative to the workflow start time which the workflow is

                  allowed to run before the controller terminates the workflow. A value of zero is used to

                  terminate a Running workflow'
                format: int64
                type: integer
              affinity:
                description: 'Affinity sets the scheduling constraints for all pods in the workflow.

                  Can be overridden by an affinity specified in the template'
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node matches the corresponding matchExpressions; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: 'An empty preferred scheduling term matches all objects with implicit weight 0

                            (i.e. it''s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).'
                          properties:
                            preference:
                              description: A node selector term, associated with the corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements by node's labels.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements by node's fields.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to an update), the system

                          may or may not try to eventually evict the pod from its node.'
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms. The terms are ORed.
                            items:
                              description: 'A null or empty node selector term matches no objects. The requirements of

                                them are ANDed.

                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.'
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements by node's labels.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements by node's fields.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: 'A label query over a set of resources, in this case pods.

                                    If it''s null, this PodAffinityTerm matches with no Pods.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                    Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                    Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  description: 'A label query over the set of namespaces that the term applies to.

                                    The term is applied to the union of the namespaces selected by this field

                                    and the ones listed in the namespaces field.

                                    null selector and null or empty namespaces list means "this pod''s namespace".

                                    An empty selector ({}) matches all namespaces.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: 'namespaces specifies a static list of namespace names that the term applies to.

                                    The term is applied to the union of the namespaces listed in this field

                                    and the ones selected by namespaceSelector.

                                    null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                    the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                    whose value of the label with key topologyKey matches that of any node on which any of the

                                    selected pods is running.

                                    Empty topologyKey is not allowed.'
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: 'weight associated with matching the corresponding podAffinityTerm,

                                in the range 1-100.'
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to a pod label update), the

                          system may or may not try to eventually evict the pod from its node.

                          When there are multiple elements, the lists of nodes corresponding to each

                          podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                        items:
                          description: 'Defines a set of pods (namely those matching the labelSelector

                            relative to the given namespace(s)) that this pod should be

                            co-located (affinity) or not co-located (anti-affinity) with,

                            where co-located is defined as running on a node whose value of

                            the label with key <topologyKey> matches that of any node on which

                            a pod of the set of pods is running'
                          properties:
                            labelSelector:
                              description: 'A label query over a set of resources, in this case pods.

                                If it''s null, this PodAffinityTerm matches with no Pods.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            matchLabelKeys:
                              description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            mismatchLabelKeys:
                              description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            namespaceSelector:
                              description: 'A label query over the set of namespaces that the term applies to.

                                The term is applied to the union of the namespaces selected by this field

                                and the ones listed in the namespaces field.

                                null selector and null or empty namespaces list means "this pod''s namespace".

                                An empty selector ({}) matches all namespaces.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            namespaces:
                              description: 'namespaces specifies a static list of namespace names that the term applies to.

                                The term is applied to the union of the namespaces listed in this field

                                and the ones selected by namespaceSelector.

                                null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            topologyKey:
                              description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                whose value of the label with key topologyKey matches that of any node on which any of the

                                selected pods is running.

                                Empty topologyKey is not allowed.'
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the anti-affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling anti-affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: 'A label query over a set of resources, in this case pods.

                                    If it''s null, this PodAffinityTerm matches with no Pods.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                    Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                    Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  description: 'A label query over the set of namespaces that the term applies to.

                                    The term is applied to the union of the namespaces selected by this field

                                    and the ones listed in the namespaces field.

                                    null selector and null or empty namespaces list means "this pod''s namespace".

                                    An empty selector ({}) matches all namespaces.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: 'namespaces specifies a static list of namespace names that the term applies to.

                                    The term is applied to the union of the namespaces listed in this field

                                    and the ones selected by namespaceSelector.

                                    null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                    the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                    whose value of the label with key topologyKey matches that of any node on which any of the

                                    selected pods is running.

                                    Empty topologyKey is not allowed.'
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: 'weight associated with matching the corresponding podAffinityTerm,

                                in the range 1-100.'
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the anti-affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the anti-affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to a pod label update), the

                          system may or may not try to eventually evict the pod from its node.

                          When there are multiple elements, the lists of nodes corresponding to each

                          podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                        items:
                          description: 'Defines a set of pods (namely those matching the labelSelector

                            relative to the given namespace(s)) that this pod should be

                            co-located (affinity) or not co-located (anti-affinity) with,

                            where co-located is defined as running on a node whose value of

                            the label with key <topologyKey> matches that of any node on which

                            a pod of the set of pods is running'
                          properties:
                            labelSelector:
                              description: 'A label query over a set of resources, in this case pods.

                                If it''s null, this PodAffinityTerm matches with no Pods.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            matchLabelKeys:
                              description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            mismatchLabelKeys:
                              description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            namespaceSelector:
                              description: 'A label query over the set of namespaces that the term applies to.

                                The term is applied to the union of the namespaces selected by this field

                                and the ones listed in the namespaces field.

                                null selector and null or empty namespaces list means "this pod''s namespace".

                                An empty selector ({}) matches all namespaces.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            namespaces:
                              description: 'namespaces specifies a static list of namespace names that the term applies to.

                                The term is applied to the union of the namespaces listed in this field

                                and the ones selected by namespaceSelector.

                                null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            topologyKey:
                              description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                whose value of the label with key topologyKey matches that of any node on which any of the

                                selected pods is running.

                                Empty topologyKey is not allowed.'
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                type: object
              archiveLogs:
                description: ArchiveLogs indicates if the container logs should be archived
                type: boolean
              arguments:
                description: 'Arguments contain the parameters and artifacts sent to the workflow entrypoint

                  Parameters are referencable globally using the ''workflow'' variable prefix.

                  e.g. {{workflow.parameters.myparam}}'
                properties:
                  artifacts:
                    description: Artifacts is the list of artifacts to pass to the template or workflow
                    items:
                      description: Artifact indicates an artifact to place at a specified path
                      properties:
                        archive:
                          description: Archive controls how the artifact will be saved to the artifact repository.
                          properties:
                            none:
                              description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                save/load the directory appropriately.'
                              type: object
                            tar:
                              description: TarStrategy will tar and gzip the file or directory when saving
                              properties:
                                compressionLevel:
                                  description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                    Defaults to gzip.DefaultCompression.'
                                  format: int32
                                  type: integer
                              type: object
                            zip:
                              description: ZipStrategy will unzip zipped input artifacts
                              type: object
                          type: object
                        archiveLogs:
                          description: ArchiveLogs indicates if the container logs should be archived
                          type: boolean
                        artifactGC:
                          description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                          properties:
                            podMetadata:
                              description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            serviceAccountName:
                              description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                              type: string
                            strategy:
                              description: Strategy is the strategy to use.
                              enum:
                              - ''
                              - OnWorkflowCompletion
                              - OnWorkflowDeletion
                              - Never
                              type: string
                          type: object
                        artifactory:
                          description: Artifactory contains artifactory artifact location details
                          properties:
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              description: URL of the artifact
                              type: string
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          description: Azure contains Azure Storage artifact location details
                          properties:
                            accountKeySecret:
                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                              type: string
                            container:
                              description: Container is the container where resources will be stored
                              type: string
                            endpoint:
                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        deleted:
                          description: Has this been deleted?
                          type: boolean
                        from:
                          description: From allows an artifact to reference an artifact from a previous step
                          type: string
                        fromExpression:
                          description: FromExpression, if defined, is evaluated to specify the value for the artifact
                          type: string
                        gcs:
                          description: GCS contains GCS artifact location details
                          properties:
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            serviceAccountKeySecret:
                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          description: Git contains git artifact location details
                          properties:
                            branch:
                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                              type: string
                            depth:
                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                number of commits from the branch tip'
                              format: int64
                              type: integer
                            disableSubmodules:
                              description: DisableSubmodules disables submodules during git clone
                              type: boolean
                            fetch:
                              description: Fetch specifies a number of refs that should be fetched before checkout
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                              type: boolean
                            insecureSkipTLS:
                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                              type: boolean
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              description: Repo is the git repository
                              type: string
                            revision:
                              description: Revision is the git commit, tag, branch to checkout
                              type: string
                            singleBranch:
                              description: SingleBranch enables single branch clone, using the `branch` parameter
                              type: boolean
                            sshPrivateKeySecret:
                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        globalName:
                          description: 'GlobalName exports an output artifact to the global scope, making it available as

                            ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                          type: string
                        hdfs:
                          description: HDFS contains HDFS artifact location details
                          properties:
                            addresses:
                              description: Addresses is accessible addresses of HDFS name nodes
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                              type: string
                            force:
                              description: Force copies a file forcibly even if it exists
                              type: boolean
                            hdfsUser:
                              description: 'HDFSUser is the user to access HDFS file system.

                                It is ignored if either ccache or keytab is used.'
                              type: string
                            krbCCacheSecret:
                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                It must be set if either ccache or keytab is used.'
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            krbServicePrincipalName:
                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                It must be set if either ccache or keytab is used.'
                              type: string
                            krbUsername:
                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            path:
                              description: Path is a file path in HDFS
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          description: HTTP contains HTTP artifact location details
                          properties:
                            auth:
                              description: Auth contains information for client authentication
                              properties:
                                basicAuth:
                                  description: BasicAuth describes the secret selectors required for basic authentication
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                  properties:
                                    clientCertSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                  properties:
                                    clientIDSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                        properties:
                                          key:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                              items:
                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                properties:
                                  name:
                                    description: Name is the header name
                                    type: string
                                  value:
                                    description: Value is the literal value to use for the header
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              description: URL of the artifact
                              type: string
                          required:
                          - url
                          type: object
                        mode:
                          description: 'mode bits to use on this file, must be a value between 0 and 0777.

                            Set when loading input artifacts. It is recommended to set the mode value

                            to ensure the artifact has the expected permissions in your container.'
                          format: int32
                          maximum: 511
                          minimum: 0
                          type: integer
                        name:
                          description: name of the artifact. must be unique within a template's inputs/outputs.
                          pattern: ^[-a-zA-Z0-9_{}.]+$
                          type: string
                        optional:
                          description: Make Artifacts optional, if Artifacts doesn't generate or exist
                          type: boolean
                        oss:
                          description: OSS contains OSS artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                              type: boolean
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            lifecycleRule:
                              description: LifecycleRule specifies how to manage bucket's lifecycle
                              properties:
                                markDeletionAfterDays:
                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - key
                          type: object
                        path:
                          description: Path is the container path to the artifact
                          type: string
                        plugin:
                          description: Plugin contains plugin artifact location details
                          properties:
                            configuration:
                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                              type: string
                            connectionTimeoutSeconds:
                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                              format: int32
                              type: integer
                            key:
                              description: Key is the path in the artifact repository where the artifact resides
                              type: string
                            name:
                              description: Name is the name of the artifact driver plugin
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          description: Raw contains raw artifact location details
                          properties:
                            data:
                              description: Data is the string contents of the artifact
                              type: string
                          required:
                          - data
                          type: object
                        recurseMode:
                          description: If mode is set, apply the permission recursively into the artifact if it is a folder
                          type: boolean
                        s3:
                          description: S3 contains S3 artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            caSecret:
                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                              properties:
                                objectLocking:
                                  description: ObjectLocking Enable object locking
                                  type: boolean
                              type: object
                            encryptionOptions:
                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                              properties:
                                enableEncryption:
                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                  type: boolean
                                kmsEncryptionContext:
                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                  type: string
                                kmsKeyId:
                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                  type: string
                                serverSideCustomerKeySecret:
                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            insecure:
                              description: Insecure will connect to the service with TLS
                              type: boolean
                            key:
                              description: Key is the key in the bucket where the artifact resides
                              type: string
                            region:
                              description: Region contains the optional bucket region
                              type: string
                            roleARN:
                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                              type: string
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          type: object
                        subPath:
                          description: SubPath allows an artifact to be sourced from a subpath within the specified source
                          type: string
                      required:
                      - name
                      type: object
                      x-kubernetes-validations:
                      - message: at most one artifact location can be specified
                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                    type: array
                  parameters:
                    description: Parameters is the list of parameters to pass to the template or workflow
                    items:
                      description: Parameter indicate a passed string parameter to a service template with an optional default value
                      properties:
                        default:
                          description: Default is the default value to use for an input parameter if a value was not supplied
                          type: string
                        description:
                          description: Description is the parameter description
                          type: string
                        enum:
                          description: Enum holds a list of string values to choose from, for the actual value of the parameter
                          items:
                            description: '* It''s JSON type is just string.

                              * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                              * It will marshall back to string - marshalling is not symmetric.'
                            type: string
                          minItems: 1
                          type: array
                        globalName:
                          description: 'GlobalName exports an output parameter to the global scope, making it available as

                            ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                          type: string
                        name:
                          description: Name is the parameter name
                          pattern: ^[-a-zA-Z0-9_]+$
                          type: string
                        value:
                          description: 'Value is the literal value to use for the parameter.

                            If specified in the context of an input parameter, any passed values take precedence over the specified value'
                          type: string
                        valueFrom:
                          description: ValueFrom is the source for the output parameter's value
                          properties:
                            configMapKeyRef:
                              description: ConfigMapKeyRef is configmap selector for input parameter configuration
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            default:
                              description: Default specifies a value to be used if retrieving the value from the specified source fails
                              type: string
                            event:
                              description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                              type: string
                            expression:
                              description: Expression, if defined, is evaluated to specify the value for the parameter
                              type: string
                            jqFilter:
                              description: JQFilter expression against the resource object in resource templates
                              type: string
                            jsonPath:
                              description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                              type: string
                            parameter:
                              description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                              type: string
                            path:
                              description: Path in the container to retrieve an output parameter value from in container templates
                              type: string
                            supplied:
                              description: Supplied value to be filled in directly, either through the CLI, API, etc.
                              type: object
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
              artifactGC:
                description: 'ArtifactGC describes the strategy to use when deleting artifacts from completed or deleted workflows (applies to all output Artifacts

                  unless Artifact.ArtifactGC is specified, which overrides this)'
                properties:
                  forceFinalizerRemoval:
                    description: 'ForceFinalizerRemoval: if set to true, the finalizer will be removed in the case that Artifact GC fails'
                    type: boolean
                  podMetadata:
                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  podSpecPatch:
                    description: PodSpecPatch holds strategic merge patch to apply against the artgc pod spec.
                    type: string
                  serviceAccountName:
                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                    type: string
                  strategy:
                    description: Strategy is the strategy to use.
                    enum:
                    - ''
                    - OnWorkflowCompletion
                    - OnWorkflowDeletion
                    - Never
                    type: string
                type: object
              artifactRepositoryRef:
                description: ArtifactRepositoryRef specifies the configMap name and key containing the artifact repository config.
                properties:
                  configMap:
                    description: The name of the config map. Defaults to "artifact-repositories".
                    type: string
                  key:
                    description: The config map key. Defaults to the value of the "workflows.argoproj.io/default-artifact-repository" annotation.
                    type: string
                type: object
              automountServiceAccountToken:
                description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods.

                  ServiceAccountName of ExecutorConfig must be specified if this value is false.'
                type: boolean
              dnsConfig:
                description: 'PodDNSConfig defines the DNS parameters of a pod in addition to

                  those generated from DNSPolicy.'
                properties:
                  nameservers:
                    description: 'A list of DNS name server IP addresses.

                      This will be appended to the base nameservers generated from DNSPolicy.

                      Duplicated nameservers will be removed.'
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: atomic
                  options:
                    description: 'A list of DNS resolver options.

                      This will be merged with the base options generated from DNSPolicy.

                      Duplicated entries will be removed. Resolution options given in Options

                      will override those that appear in the base DNSPolicy.'
                    items:
                      description: PodDNSConfigOption defines DNS resolver options of a pod.
                      properties:
                        name:
                          description: 'Name is this DNS resolver option''s name.

                            Required.'
                          type: string
                        value:
                          description: Value is this DNS resolver option's value.
                          type: string
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  searches:
                    description: 'A list of DNS search domains for host-name lookup.

                      This will be appended to the base search paths generated from DNSPolicy.

                      Duplicated search paths will be removed.'
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: atomic
                type: object
              dnsPolicy:
                description: 'Set DNS policy for workflow pods.

                  Defaults to "ClusterFirst".

                  Valid values are ''ClusterFirstWithHostNet'', ''ClusterFirst'', ''Default'' or ''None''.

                  DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.

                  To have DNS options set along with hostNetwork, you have to specify DNS policy

                  explicitly to ''ClusterFirstWithHostNet''.'
                type: string
              entrypoint:
                description: Entrypoint is a template reference to the starting point of the workflow.
                type: string
              executor:
                description: Executor holds configurations of executor containers of the workflow.
                properties:
                  serviceAccountName:
                    description: ServiceAccountName specifies the service account name of the executor container.
                    type: string
                type: object
              hooks:
                additionalProperties:
                  properties:
                    arguments:
                      description: Arguments hold arguments to the template
                      properties:
                        artifacts:
                          description: Artifacts is the list of artifacts to pass to the template or workflow
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        parameters:
                          description: Parameters is the list of parameters to pass to the template or workflow
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                      type: object
                    expression:
                      description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                        be retried and the retry strategy will be ignored'
                      type: string
                    template:
                      description: Template is the name of the template to execute by the hook
                      type: string
                    templateRef:
                      description: TemplateRef is the reference to the template resource to execute by the hook
                      properties:
                        clusterScope:
                          description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                          type: boolean
                        name:
                          description: Name is the resource name of the template.
                          type: string
                        template:
                          description: Template is the name of referred template in the resource.
                          type: string
                      type: object
                  type: object
                description: 'Hooks holds the lifecycle hook which is invoked at lifecycle of

                  step, irrespective of the success, failure, or error status of the primary step'
                type: object
              hostAliases:
                items:
                  description: 'HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the

                    pod''s hosts file.'
                  properties:
                    hostnames:
                      description: Hostnames for the above IP address.
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: atomic
                    ip:
                      description: IP address of the host file entry.
                      type: string
                  required:
                  - ip
                  type: object
                type: array
              hostNetwork:
                description: Host networking requested for this workflow pod. Default to false.
                type: boolean
              imagePullSecrets:
                description: 'ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images

                  in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets

                  can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.

                  More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod'
                items:
                  description: 'LocalObjectReference contains enough information to let you locate the

                    referenced object inside the same namespace.'
                  properties:
                    name:
                      default: ''
                      description: 'Name of the referent.

                        This field is effectively required, but due to backwards compatibility is

                        allowed to be empty. Instances of this type with an empty value here are

                        almost certainly wrong.

                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                type: array
              metrics:
                description: Metrics are a list of metrics emitted from this Workflow
                properties:
                  prometheus:
                    description: 'Prometheus is a list of prometheus metrics to be emitted

                      MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                    items:
                      description: Prometheus is a prometheus metric to be emitted
                      properties:
                        counter:
                          description: Counter is a counter metric
                          properties:
                            value:
                              description: Value is the value of the metric
                              minLength: 1
                              type: string
                          required:
                          - value
                          type: object
                        gauge:
                          description: Gauge is a gauge metric
                          properties:
                            operation:
                              description: Operation defines the operation to apply with value and the metrics' current value
                              enum:
                              - Set
                              - Add
                              - Sub
                              type: string
                            realtime:
                              description: Realtime emits this metric in real time if applicable
                              type: boolean
                            value:
                              description: 'Value is the value to be used in the operation with the metric''s current value. If no operation is set,

                                value is the value of the metric

                                MaxLength is an artificial limit to limit CEL validation costs - see note at top of file'
                              maxLength: 256
                              minLength: 1
                              type: string
                          required:
                          - realtime
                          - value
                          type: object
                          x-kubernetes-validations:
                          - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                            rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                        help:
                          description: Help is a string that describes the metric
                          minLength: 1
                          type: string
                        histogram:
                          description: Histogram is a histogram metric
                          properties:
                            buckets:
                              description: Buckets is a list of bucket divisors for the histogram
                              items:
                                type: number
                              type: array
                            value:
                              description: Value is the value of the metric
                              minLength: 1
                              type: string
                          required:
                          - buckets
                          - value
                          type: object
                        labels:
                          description: Labels is a list of metric labels
                          items:
                            description: MetricLabel is a single label for a prometheus metric
                            properties:
                              key:
                                pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                type: string
                              value:
                                type: string
                            required:
                            - key
                            - value
                            type: object
                          type: array
                        name:
                          description: Name is the name of the metric
                          pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                          type: string
                        when:
                          description: When is a conditional statement that decides when to emit the metric
                          type: string
                      required:
                      - help
                      - name
                      type: object
                    maxItems: 100
                    type: array
                required:
                - prometheus
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                description: 'NodeSelector is a selector which will result in all pods of the workflow

                  to be scheduled on the selected node(s). This is able to be overridden by

                  a nodeSelector specified in the template.'
                type: object
              onExit:
                description: 'OnExit is a template reference which is invoked at the end of the

                  workflow, irrespective of the success, failure, or error of the

                  primary workflow.'
                type: string
              parallelism:
                description: Parallelism limits the max total parallel pods that can execute at the same time in a workflow
                format: int64
                minimum: 1
                type: integer
              podDisruptionBudget:
                description: 'PodDisruptionBudget holds the number of concurrent disruptions that you allow for Workflow''s Pods.

                  Controller will automatically add the selector with workflow name, if selector is empty.

                  Optional: Defaults to empty.'
                properties:
                  maxUnavailable:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'An eviction is allowed if at most "maxUnavailable" pods selected by

                      "selector" are unavailable after the eviction, i.e. even in absence of

                      the evicted pod. For example, one can prevent all voluntary evictions

                      by specifying 0. This is a mutually exclusive setting with "minAvailable".'
                    x-kubernetes-int-or-string: true
                  minAvailable:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'An eviction is allowed if at least "minAvailable" pods selected by

                      "selector" will still be available after the eviction, i.e. even in the

                      absence of the evicted pod.  So for example you can prevent all voluntary

                      evictions by specifying "100%".'
                    x-kubernetes-int-or-string: true
                  selector:
                    description: 'Label query over pods whose evictions are managed by the disruption

                      budget.

                      A null selector will match no pods, while an empty ({}) selector will select

                      all pods within the namespace.'
                    properties:
                      matchExpressions:
                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                        items:
                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                            relates the key and values.'
                          properties:
                            key:
                              description: key is the label key that the selector applies to.
                              type: string
                            operator:
                              description: 'operator represents a key''s relationship to a set of values.

                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                              type: string
                            values:
                              description: 'values is an array of string values. If the operator is In or NotIn,

                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                the values array must be empty. This array is replaced during a strategic

                                merge patch.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                        type: object
                    type: object
                    x-kubernetes-map-type: atomic
                  unhealthyPodEvictionPolicy:
                    description: 'UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods

                      should be considered for eviction. Current implementation considers healthy pods,

                      as pods that have status.conditions item with type="Ready",status="True".


                      Valid policies are IfHealthyBudget and AlwaysAllow.

                      If no policy is specified, the default behavior will be used,

                      which corresponds to the IfHealthyBudget policy.


                      IfHealthyBudget policy means that running pods (status.phase="Running"),

                      but not yet healthy can be evicted only if the guarded application is not

                      disrupted (status.currentHealthy is at least equal to status.desiredHealthy).

                      Healthy pods will be subject to the PDB for eviction.


                      AlwaysAllow policy means that all running pods (status.phase="Running"),

                      but not yet healthy are considered disrupted and can be evicted regardless

                      of whether the criteria in a PDB is met. This means perspective running

                      pods of a disrupted application might not get a chance to become healthy.

                      Healthy pods will be subject to the PDB for eviction.


                      Additional policies may be added in the future.

                      Clients making eviction decisions should disallow eviction of unhealthy pods

                      if they encounter an unrecognized policy in this field.'
                    type: string
                type: object
              podGC:
                description: PodGC describes the strategy to use when deleting completed pods
                properties:
                  deleteDelayDuration:
                    description: DeleteDelayDuration specifies the duration before pods in the GC queue get deleted.
                    type: string
                  labelSelector:
                    description: LabelSelector is the label selector to check if the pods match the labels before being added to the pod GC queue.
                    properties:
                      matchExpressions:
                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                        items:
                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                            relates the key and values.'
                          properties:
                            key:
                              description: key is the label key that the selector applies to.
                              type: string
                            operator:
                              description: 'operator represents a key''s relationship to a set of values.

                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                              type: string
                            values:
                              description: 'values is an array of string values. If the operator is In or NotIn,

                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                the values array must be empty. This array is replaced during a strategic

                                merge patch.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                        type: object
                    type: object
                    x-kubernetes-map-type: atomic
                  strategy:
                    description: Strategy is the strategy to use. One of "OnPodCompletion", "OnPodSuccess", "OnWorkflowCompletion", "OnWorkflowSuccess". If unset, does not delete Pods
                    enum:
                    - ''
                    - OnPodCompletion
                    - OnPodSuccess
                    - OnWorkflowCompletion
                    - OnWorkflowSuccess
                    type: string
                type: object
              podMetadata:
                description: PodMetadata defines additional metadata that should be applied to workflow pods
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              podPriorityClassName:
                description: PriorityClassName to apply to workflow pods.
                type: string
              podSpecPatch:
                description: 'PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of

                  container fields which are not strings (e.g. resource limits).'
                type: string
              priority:
                description: Priority is used if controller is configured to process limited number of workflows in parallel. Workflows with higher priority are processed first.
                format: int32
                type: integer
              retryStrategy:
                description: RetryStrategy for all templates in the workflow.
                properties:
                  affinity:
                    description: Affinity prevents running workflow's step on the same host
                    properties:
                      nodeAntiAffinity:
                        description: 'RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed.

                          In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".'
                        type: object
                    type: object
                  backoff:
                    description: Backoff is a backoff strategy
                    properties:
                      cap:
                        description: 'Cap is a limit on revised values of the duration parameter. If a

                          multiplication by the factor parameter would make the duration

                          exceed the cap then the duration is set to the cap'
                        type: string
                      duration:
                        description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                        type: string
                      factor:
                        anyOf:
                        - type: integer
                        - type: string
                        description: Factor is a factor to multiply the base duration after each failed retry
                        x-kubernetes-int-or-string: true
                      maxDuration:
                        description: 'MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy.

                          It is important to note that if the workflow template includes activeDeadlineSeconds, the pod''s deadline is initially set with activeDeadlineSeconds.

                          However, when the workflow fails, the pod''s deadline is then overridden by maxDuration.

                          This ensures that the workflow does not exceed the specified maximum duration when retries are involved.'
                        type: string
                    type: object
                  expression:
                    description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                      be retried and the retry strategy will be ignored'
                    type: string
                  limit:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'Limit is the maximum number of retry attempts when retrying a container. It does not include the original

                      container; the maximum number of total attempts will be `limit + 1`.'
                    x-kubernetes-int-or-string: true
                  retryPolicy:
                    description: RetryPolicy is a policy of NodePhase statuses that will be retried
                    enum:
                    - Always
                    - OnFailure
                    - OnError
                    - OnTransientError
                    type: string
                type: object
              schedulerName:
                description: 'Set scheduler name for all pods.

                  Will be overridden if container/script template''s scheduler name is set.

                  Default scheduler will be used if neither specified.'
                type: string
              securityContext:
                description: 'SecurityContext holds pod-level security attributes and common container settings.

                  Optional: Defaults to empty.  See type description for default values of each field.'
                properties:
                  appArmorProfile:
                    description: 'appArmorProfile is the AppArmor options to use by the containers in this pod.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      localhostProfile:
                        description: 'localhostProfile indicates a profile loaded on the node that should be used.

                          The profile must be preconfigured on the node to work.

                          Must match the loaded name of the profile.

                          Must be set if and only if type is "Localhost".'
                        type: string
                      type:
                        description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                        type: string
                    required:
                    - type
                    type: object
                  fsGroup:
                    description: 'A special supplemental group that applies to all containers in a pod.

                      Some volume types allow the Kubelet to change the ownership of that volume

                      to be owned by the pod:


                      1. The owning GID will be the FSGroup

                      2. The setgid bit is set (new files created in the volume will be owned by FSGroup)

                      3. The permission bits are OR''d with rw-rw----


                      If unset, the Kubelet will not modify the ownership and permissions of any volume.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  fsGroupChangePolicy:
                    description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume

                      before being exposed inside Pod. This field will only apply to

                      volume types which support fsGroup based ownership(and permissions).

                      It will have no effect on ephemeral volume types such as: secret, configmaps

                      and emptydir.

                      Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  runAsGroup:
                    description: 'The GID to run the entrypoint of the container process.

                      Uses runtime default if unset.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence

                      for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  runAsNonRoot:
                    description: 'Indicates that the container must run as a non-root user.

                      If true, the Kubelet will validate the image at runtime to ensure that it

                      does not run as UID 0 (root) and fail to start the container if it does.

                      If unset or false, no such validation will be performed.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                    type: boolean
                  runAsUser:
                    description: 'The UID to run the entrypoint of the container process.

                      Defaults to user specified in image metadata if unspecified.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence

                      for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  seLinuxChangePolicy:
                    description: 'seLinuxChangePolicy defines how the container''s SELinux label is applied to all volumes used by the Pod.

                      It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.

                      Valid values are "MountOption" and "Recursive".


                      "Recursive" means relabeling of all files on all Pod volumes by the container runtime.

                      This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.


                      "MountOption" mounts all eligible Pod volumes with `-o context` mount option.

                      This requires all Pods that share the same volume to use the same SELinux label.

                      It is not possible to share the same volume among privileged and unprivileged Pods.

                      Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes

                      whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their

                      CSIDriver instance. Other volumes are always re-labelled recursively.

                      "MountOption" value is allowed only when SELinuxMount feature gate is enabled.


                      If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.

                      If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes

                      and "Recursive" for all other volumes.


                      This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.


                      All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  seLinuxOptions:
                    description: 'The SELinux context to be applied to all containers.

                      If unspecified, the container runtime will allocate a random SELinux context for each

                      container.  May also be set in SecurityContext.  If set in

                      both SecurityContext and PodSecurityContext, the value specified in SecurityContext

                      takes precedence for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      level:
                        description: Level is SELinux level label that applies to the container.
                        type: string
                      role:
                        description: Role is a SELinux role label that applies to the container.
                        type: string
                      type:
                        description: Type is a SELinux type label that applies to the container.
                        type: string
                      user:
                        description: User is a SELinux user label that applies to the container.
                        type: string
                    type: object
                  seccompProfile:
                    description: 'The seccomp options to use by the containers in this pod.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      localhostProfile:
                        description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                          The profile must be preconfigured on the node to work.

                          Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                          Must be set if type is "Localhost". Must NOT be set for any other type.'
                        type: string
                      type:
                        description: 'type indicates which kind of seccomp profile will be applied.

                          Valid options are:


                          Localhost - a profile defined in a file on the node should be used.

                          RuntimeDefault - the container runtime default profile should be used.

                          Unconfined - no profile should be applied.'
                        type: string
                    required:
                    - type
                    type: object
                  supplementalGroups:
                    description: 'A list of groups applied to the first process run in each container, in

                      addition to the container''s primary GID and fsGroup (if specified).  If

                      the SupplementalGroupsPolicy feature is enabled, the

                      supplementalGroupsPolicy field determines whether these are in addition

                      to or instead of any group memberships defined in the container image.

                      If unspecified, no additional groups are added, though group memberships

                      defined in the container image may still be used, depending on the

                      supplementalGroupsPolicy field.

                      Note that this field cannot be set when spec.os.name is windows.'
                    items:
                      format: int64
                      type: integer
                    type: array
                    x-kubernetes-list-type: atomic
                  supplementalGroupsPolicy:
                    description: 'Defines how supplemental groups of the first container processes are calculated.

                      Valid values are "Merge" and "Strict". If not specified, "Merge" is used.

                      (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled

                      and the container runtime must implement support for this feature.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  sysctls:
                    description: 'Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported

                      sysctls (by the container runtime) might fail to launch.

                      Note that this field cannot be set when spec.os.name is windows.'
                    items:
                      description: Sysctl defines a kernel parameter to be set
                      properties:
                        name:
                          description: Name of a property to set
                          type: string
                        value:
                          description: Value of a property to set
                          type: string
                      required:
                      - name
                      - value
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  windowsOptions:
                    description: 'The Windows specific settings applied to all containers.

                      If unspecified, the options within a container''s SecurityContext will be used.

                      If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                      Note that this field cannot be set when spec.os.name is linux.'
                    properties:
                      gmsaCredentialSpec:
                        description: 'GMSACredentialSpec is where the GMSA admission webhook

                          (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                          GMSA credential spec named by the GMSACredentialSpecName field.'
                        type: string
                      gmsaCredentialSpecName:
                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                        type: string
                      hostProcess:
                        description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                          All of a Pod''s containers must have the same effective HostProcess value

                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                          In addition, if HostProcess is true then HostNetwork must also be set to true.'
                        type: boolean
                      runAsUserName:
                        description: 'The UserName in Windows to run the entrypoint of the container process.

                          Defaults to the user specified in image metadata if unspecified.

                          May also be set in PodSecurityContext. If set in both SecurityContext and

                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                        type: string
                    type: object
                type: object
              serviceAccountName:
                description: ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as.
                type: string
              shutdown:
                description: Shutdown will shutdown the workflow according to its ShutdownStrategy
                type: string
              suspend:
                description: Suspend will suspend the workflow and prevent execution of any future steps in the workflow
                type: boolean
              synchronization:
                description: Synchronization holds synchronization lock configuration for this Workflow
                properties:
                  mutexes:
                    description: 'v3.6 and after: Mutexes holds the list of Mutex lock details'
                    items:
                      description: Mutex holds Mutex configuration
                      properties:
                        database:
                          description: Database specifies this is database controlled if this is set true
                          type: boolean
                        name:
                          description: name of the mutex
                          type: string
                        namespace:
                          description: 'Namespace is the namespace of the mutex, default: [namespace of workflow]'
                          type: string
                      type: object
                    type: array
                  semaphores:
                    description: 'v3.6 and after: Semaphores holds the list of Semaphores configuration'
                    items:
                      description: SemaphoreRef is a reference of Semaphore
                      properties:
                        configMapKeyRef:
                          description: ConfigMapKeyRef is a configmap selector for Semaphore configuration
                          properties:
                            key:
                              description: The key to select.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the ConfigMap or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        database:
                          description: SyncDatabaseRef is a database reference for Semaphore configuration
                          properties:
                            key:
                              type: string
                          required:
                          - key
                          type: object
                        namespace:
                          description: 'Namespace is the namespace of the configmap, default: [namespace of workflow]'
                          type: string
                      type: object
                    type: array
                type: object
              templateDefaults:
                description: 'TemplateDefaults holds default template values that will apply to all templates in the Workflow, unless overridden on the template-level.

                  All nested field descriptions have been dropped due to Kubernetes size limitations.'
                properties:
                  activeDeadlineSeconds:
                    anyOf:
                    - type: integer
                    - type: string
                    x-kubernetes-int-or-string: true
                  affinity:
                    properties:
                      nodeAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                preference:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            properties:
                              nodeSelectorTerms:
                                items:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                type: array
                                x-kubernetes-list-type: atomic
                            required:
                            - nodeSelectorTerms
                            type: object
                            x-kubernetes-map-type: atomic
                        type: object
                      podAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                        type: object
                      podAntiAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                        type: object
                    type: object
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  archiveLocation:
                    properties:
                      archiveLogs:
                        type: boolean
                      artifactory:
                        properties:
                          passwordSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          url:
                            type: string
                          usernameSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - url
                        type: object
                      azure:
                        properties:
                          accountKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          blob:
                            type: string
                          container:
                            type: string
                          endpoint:
                            type: string
                          useSDKCreds:
                            type: boolean
                        required:
                        - blob
                        - container
                        - endpoint
                        type: object
                      gcs:
                        properties:
                          bucket:
                            type: string
                          key:
                            type: string
                          serviceAccountKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - key
                        type: object
                      git:
                        properties:
                          branch:
                            type: string
                          depth:
                            format: int64
                            type: integer
                          disableSubmodules:
                            type: boolean
                          fetch:
                            items:
                              type: string
                            type: array
                          insecureIgnoreHostKey:
                            type: boolean
                          insecureSkipTLS:
                            type: boolean
                          passwordSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          repo:
                            type: string
                          revision:
                            type: string
                          singleBranch:
                            type: boolean
                          sshPrivateKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          usernameSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - repo
                        type: object
                      hdfs:
                        properties:
                          addresses:
                            items:
                              type: string
                            type: array
                          dataTransferProtection:
                            type: string
                          force:
                            type: boolean
                          hdfsUser:
                            type: string
                          krbCCacheSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbConfigConfigMap:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbKeytabSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbRealm:
                            type: string
                          krbServicePrincipalName:
                            type: string
                          krbUsername:
                            type: string
                          path:
                            type: string
                        required:
                        - path
                        type: object
                      http:
                        properties:
                          auth:
                            properties:
                              basicAuth:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              clientCert:
                                properties:
                                  clientCertSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  clientKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              oauth2:
                                properties:
                                  clientIDSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  clientSecretSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  endpointParams:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - key
                                      type: object
                                    type: array
                                  scopes:
                                    items:
                                      type: string
                                    type: array
                                  tokenURLSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            type: object
                          headers:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                          url:
                            type: string
                        required:
                        - url
                        type: object
                      oss:
                        properties:
                          accessKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          bucket:
                            type: string
                          createBucketIfNotPresent:
                            type: boolean
                          endpoint:
                            type: string
                          key:
                            type: string
                          lifecycleRule:
                            properties:
                              markDeletionAfterDays:
                                format: int32
                                type: integer
                              markInfrequentAccessAfterDays:
                                format: int32
                                type: integer
                            type: object
                          secretKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          securityToken:
                            type: string
                          useSDKCreds:
                            type: boolean
                        required:
                        - key
                        type: object
                      plugin:
                        properties:
                          configuration:
                            type: string
                          connectionTimeoutSeconds:
                            format: int32
                            type: integer
                          key:
                            type: string
                          name:
                            type: string
                        required:
                        - key
                        type: object
                      raw:
                        properties:
                          data:
                            type: string
                        required:
                        - data
                        type: object
                      s3:
                        properties:
                          accessKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          bucket:
                            type: string
                          caSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          createBucketIfNotPresent:
                            properties:
                              objectLocking:
                                type: boolean
                            type: object
                          encryptionOptions:
                            properties:
                              enableEncryption:
                                type: boolean
                              kmsEncryptionContext:
                                type: string
                              kmsKeyId:
                                type: string
                              serverSideCustomerKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          endpoint:
                            type: string
                          insecure:
                            type: boolean
                          key:
                            type: string
                          region:
                            type: string
                          roleARN:
                            type: string
                          secretKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          sessionTokenSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          useSDKCreds:
                            type: boolean
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: at most one artifact location can be specified
                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                  automountServiceAccountToken:
                    type: boolean
                  container:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      command:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                  x-kubernetes-map-type: atomic
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                  x-kubernetes-map-type: atomic
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - name
                        x-kubernetes-list-type: map
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          stopSignal:
                            type: string
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      resizePolicy:
                        items:
                          properties:
                            resourceName:
                              type: string
                            restartPolicy:
                              type: string
                          required:
                          - resourceName
                          - restartPolicy
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      resources:
                        properties:
                          claims:
                            items:
                              properties:
                                name:
                                  type: string
                                request:
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      restartPolicy:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          appArmorProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              drop:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - devicePath
                        x-kubernetes-list-type: map
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - mountPath
                        x-kubernetes-list-type: map
                      workingDir:
                        type: string
                    type: object
                  containerSet:
                    properties:
                      containers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            command:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            dependencies:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                stopSignal:
                                  type: string
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            resizePolicy:
                              items:
                                properties:
                                  resourceName:
                                    type: string
                                  restartPolicy:
                                    type: string
                                required:
                                - resourceName
                                - restartPolicy
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            resources:
                              properties:
                                claims:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      request:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - name
                                  x-kubernetes-list-type: map
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                              type: object
                            restartPolicy:
                              type: string
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - devicePath
                              x-kubernetes-list-type: map
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - mountPath
                              x-kubernetes-list-type: map
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      retryStrategy:
                        properties:
                          duration:
                            type: string
                          retries:
                            anyOf:
                            - type: integer
                            - type: string
                            x-kubernetes-int-or-string: true
                        required:
                        - retries
                        type: object
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                    required:
                    - containers
                    type: object
                  daemon:
                    type: boolean
                  dag:
                    properties:
                      failFast:
                        type: boolean
                      target:
                        type: string
                      tasks:
                        items:
                          properties:
                            arguments:
                              properties:
                                artifacts:
                                  items:
                                    properties:
                                      archive:
                                        properties:
                                          none:
                                            type: object
                                          tar:
                                            properties:
                                              compressionLevel:
                                                format: int32
                                                type: integer
                                            type: object
                                          zip:
                                            type: object
                                        type: object
                                      archiveLogs:
                                        type: boolean
                                      artifactGC:
                                        properties:
                                          podMetadata:
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                          serviceAccountName:
                                            type: string
                                          strategy:
                                            enum:
                                            - ''
                                            - OnWorkflowCompletion
                                            - OnWorkflowDeletion
                                            - Never
                                            type: string
                                        type: object
                                      artifactory:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          url:
                                            type: string
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - url
                                        type: object
                                      azure:
                                        properties:
                                          accountKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          blob:
                                            type: string
                                          container:
                                            type: string
                                          endpoint:
                                            type: string
                                          useSDKCreds:
                                            type: boolean
                                        required:
                                        - blob
                                        - container
                                        - endpoint
                                        type: object
                                      deleted:
                                        type: boolean
                                      from:
                                        type: string
                                      fromExpression:
                                        type: string
                                      gcs:
                                        properties:
                                          bucket:
                                            type: string
                                          key:
                                            type: string
                                          serviceAccountKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - key
                                        type: object
                                      git:
                                        properties:
                                          branch:
                                            type: string
                                          depth:
                                            format: int64
                                            type: integer
                                          disableSubmodules:
                                            type: boolean
                                          fetch:
                                            items:
                                              type: string
                                            type: array
                                          insecureIgnoreHostKey:
                                            type: boolean
                                          insecureSkipTLS:
                                            type: boolean
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          repo:
                                            type: string
                                          revision:
                                            type: string
                                          singleBranch:
                                            type: boolean
                                          sshPrivateKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - repo
                                        type: object
                                      globalName:
                                        type: string
                                      hdfs:
                                        properties:
                                          addresses:
                                            items:
                                              type: string
                                            type: array
                                          dataTransferProtection:
                                            type: string
                                          force:
                                            type: boolean
                                          hdfsUser:
                                            type: string
                                          krbCCacheSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbConfigConfigMap:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbKeytabSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbRealm:
                                            type: string
                                          krbServicePrincipalName:
                                            type: string
                                          krbUsername:
                                            type: string
                                          path:
                                            type: string
                                        required:
                                        - path
                                        type: object
                                      http:
                                        properties:
                                          auth:
                                            properties:
                                              basicAuth:
                                                properties:
                                                  passwordSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              clientCert:
                                                properties:
                                                  clientCertSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              oauth2:
                                                properties:
                                                  clientIDSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientSecretSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  endpointParams:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        value:
                                                          type: string
                                                      required:
                                                      - key
                                                      type: object
                                                    type: array
                                                  scopes:
                                                    items:
                                                      type: string
                                                    type: array
                                                  tokenURLSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                            type: object
                                          headers:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          url:
                                            type: string
                                        required:
                                        - url
                                        type: object
                                      mode:
                                        format: int32
                                        maximum: 511
                                        minimum: 0
                                        type: integer
                                      name:
                                        pattern: ^[-a-zA-Z0-9_{}.]+$
                                        type: string
                                      optional:
                                        type: boolean
                                      oss:
                                        properties:
                                          accessKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            type: string
                                          createBucketIfNotPresent:
                                            type: boolean
                                          endpoint:
                                            type: string
                                          key:
                                            type: string
                                          lifecycleRule:
                                            properties:
                                              markDeletionAfterDays:
                                                format: int32
                                                type: integer
                                              markInfrequentAccessAfterDays:
                                                format: int32
                                                type: integer
                                            type: object
                                          secretKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          securityToken:
                                            type: string
                                          useSDKCreds:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      path:
                                        type: string
                                      plugin:
                                        properties:
                                          configuration:
                                            type: string
                                          connectionTimeoutSeconds:
                                            format: int32
                                            type: integer
                                          key:
                                            type: string
                                          name:
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      raw:
                                        properties:
                                          data:
                                            type: string
                                        required:
                                        - data
                                        type: object
                                      recurseMode:
                                        type: boolean
                                      s3:
                                        properties:
                                          accessKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            type: string
                                          caSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          createBucketIfNotPresent:
                                            properties:
                                              objectLocking:
                                                type: boolean
                                            type: object
                                          encryptionOptions:
                                            properties:
                                              enableEncryption:
                                                type: boolean
                                              kmsEncryptionContext:
                                                type: string
                                              kmsKeyId:
                                                type: string
                                              serverSideCustomerKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          endpoint:
                                            type: string
                                          insecure:
                                            type: boolean
                                          key:
                                            type: string
                                          region:
                                            type: string
                                          roleARN:
                                            type: string
                                          secretKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          sessionTokenSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          useSDKCreds:
                                            type: boolean
                                        type: object
                                      subPath:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                    x-kubernetes-validations:
                                    - message: at most one artifact location can be specified
                                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                  type: array
                                parameters:
                                  items:
                                    properties:
                                      default:
                                        type: string
                                      description:
                                        type: string
                                      enum:
                                        items:
                                          type: string
                                        minItems: 1
                                        type: array
                                      globalName:
                                        type: string
                                      name:
                                        pattern: ^[-a-zA-Z0-9_]+$
                                        type: string
                                      value:
                                        type: string
                                      valueFrom:
                                        properties:
                                          configMapKeyRef:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          default:
                                            type: string
                                          event:
                                            type: string
                                          expression:
                                            type: string
                                          jqFilter:
                                            type: string
                                          jsonPath:
                                            type: string
                                          parameter:
                                            type: string
                                          path:
                                            type: string
                                          supplied:
                                            type: object
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  type: array
                              type: object
                            continueOn:
                              properties:
                                error:
                                  type: boolean
                                failed:
                                  type: boolean
                              type: object
                            dependencies:
                              items:
                                type: string
                              type: array
                            depends:
                              type: string
                            hooks:
                              additionalProperties:
                                properties:
                                  arguments:
                                    properties:
                                      artifacts:
                                        items:
                                          properties:
                                            archive:
                                              properties:
                                                none:
                                                  type: object
                                                tar:
                                                  properties:
                                                    compressionLevel:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                zip:
                                                  type: object
                                              type: object
                                            archiveLogs:
                                              type: boolean
                                            artifactGC:
                                              properties:
                                                podMetadata:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                serviceAccountName:
                                                  type: string
                                                strategy:
                                                  enum:
                                                  - ''
                                                  - OnWorkflowCompletion
                                                  - OnWorkflowDeletion
                                                  - Never
                                                  type: string
                                              type: object
                                            artifactory:
                                              properties:
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                url:
                                                  type: string
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - url
                                              type: object
                                            azure:
                                              properties:
                                                accountKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                blob:
                                                  type: string
                                                container:
                                                  type: string
                                                endpoint:
                                                  type: string
                                                useSDKCreds:
                                                  type: boolean
                                              required:
                                              - blob
                                              - container
                                              - endpoint
                                              type: object
                                            deleted:
                                              type: boolean
                                            from:
                                              type: string
                                            fromExpression:
                                              type: string
                                            gcs:
                                              properties:
                                                bucket:
                                                  type: string
                                                key:
                                                  type: string
                                                serviceAccountKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - key
                                              type: object
                                            git:
                                              properties:
                                                branch:
                                                  type: string
                                                depth:
                                                  format: int64
                                                  type: integer
                                                disableSubmodules:
                                                  type: boolean
                                                fetch:
                                                  items:
                                                    type: string
                                                  type: array
                                                insecureIgnoreHostKey:
                                                  type: boolean
                                                insecureSkipTLS:
                                                  type: boolean
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                repo:
                                                  type: string
                                                revision:
                                                  type: string
                                                singleBranch:
                                                  type: boolean
                                                sshPrivateKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - repo
                                              type: object
                                            globalName:
                                              type: string
                                            hdfs:
                                              properties:
                                                addresses:
                                                  items:
                                                    type: string
                                                  type: array
                                                dataTransferProtection:
                                                  type: string
                                                force:
                                                  type: boolean
                                                hdfsUser:
                                                  type: string
                                                krbCCacheSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbConfigConfigMap:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbKeytabSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbRealm:
                                                  type: string
                                                krbServicePrincipalName:
                                                  type: string
                                                krbUsername:
                                                  type: string
                                                path:
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                            http:
                                              properties:
                                                auth:
                                                  properties:
                                                    basicAuth:
                                                      properties:
                                                        passwordSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        usernameSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    clientCert:
                                                      properties:
                                                        clientCertSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientKeySecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    oauth2:
                                                      properties:
                                                        clientIDSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientSecretSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        endpointParams:
                                                          items:
                                                            properties:
                                                              key:
                                                                type: string
                                                              value:
                                                                type: string
                                                            required:
                                                            - key
                                                            type: object
                                                          type: array
                                                        scopes:
                                                          items:
                                                            type: string
                                                          type: array
                                                        tokenURLSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                  type: object
                                                headers:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                url:
                                                  type: string
                                              required:
                                              - url
                                              type: object
                                            mode:
                                              format: int32
                                              maximum: 511
                                              minimum: 0
                                              type: integer
                                            name:
                                              pattern: ^[-a-zA-Z0-9_{}.]+$
                                              type: string
                                            optional:
                                              type: boolean
                                            oss:
                                              properties:
                                                accessKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  type: string
                                                createBucketIfNotPresent:
                                                  type: boolean
                                                endpoint:
                                                  type: string
                                                key:
                                                  type: string
                                                lifecycleRule:
                                                  properties:
                                                    markDeletionAfterDays:
                                                      format: int32
                                                      type: integer
                                                    markInfrequentAccessAfterDays:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                secretKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                securityToken:
                                                  type: string
                                                useSDKCreds:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            path:
                                              type: string
                                            plugin:
                                              properties:
                                                configuration:
                                                  type: string
                                                connectionTimeoutSeconds:
                                                  format: int32
                                                  type: integer
                                                key:
                                                  type: string
                                                name:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            raw:
                                              properties:
                                                data:
                                                  type: string
                                              required:
                                              - data
                                              type: object
                                            recurseMode:
                                              type: boolean
                                            s3:
                                              properties:
                                                accessKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  type: string
                                                caSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                createBucketIfNotPresent:
                                                  properties:
                                                    objectLocking:
                                                      type: boolean
                                                  type: object
                                                encryptionOptions:
                                                  properties:
                                                    enableEncryption:
                                                      type: boolean
                                                    kmsEncryptionContext:
                                                      type: string
                                                    kmsKeyId:
                                                      type: string
                                                    serverSideCustomerKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                endpoint:
                                                  type: string
                                                insecure:
                                                  type: boolean
                                                key:
                                                  type: string
                                                region:
                                                  type: string
                                                roleARN:
                                                  type: string
                                                secretKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                sessionTokenSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                useSDKCreds:
                                                  type: boolean
                                              type: object
                                            subPath:
                                              type: string
                                          required:
                                          - name
                                          type: object
                                          x-kubernetes-validations:
                                          - message: at most one artifact location can be specified
                                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                        type: array
                                      parameters:
                                        items:
                                          properties:
                                            default:
                                              type: string
                                            description:
                                              type: string
                                            enum:
                                              items:
                                                type: string
                                              minItems: 1
                                              type: array
                                            globalName:
                                              type: string
                                            name:
                                              pattern: ^[-a-zA-Z0-9_]+$
                                              type: string
                                            value:
                                              type: string
                                            valueFrom:
                                              properties:
                                                configMapKeyRef:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                default:
                                                  type: string
                                                event:
                                                  type: string
                                                expression:
                                                  type: string
                                                jqFilter:
                                                  type: string
                                                jsonPath:
                                                  type: string
                                                parameter:
                                                  type: string
                                                path:
                                                  type: string
                                                supplied:
                                                  type: object
                                              type: object
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                                  expression:
                                    type: string
                                  template:
                                    type: string
                                  templateRef:
                                    properties:
                                      clusterScope:
                                        type: boolean
                                      name:
                                        type: string
                                      template:
                                        type: string
                                    type: object
                                type: object
                              type: object
                            inline:
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              maxLength: 128
                              pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                              type: string
                            onExit:
                              type: string
                            template:
                              type: string
                            templateRef:
                              properties:
                                clusterScope:
                                  type: boolean
                                name:
                                  type: string
                                template:
                                  type: string
                              type: object
                            when:
                              type: string
                            withItems:
                              x-kubernetes-preserve-unknown-fields: true
                            withParam:
                              type: string
                            withSequence:
                              properties:
                                count:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                end:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                format:
                                  type: string
                                start:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              type: object
                              x-kubernetes-validations:
                              - message: only one of count or end can be defined
                                rule: '!(has(self.count) && has(self.end))'
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: cannot use both 'depends' and 'dependencies'
                            rule: '!has(self.depends) || !has(self.dependencies)'
                          - message: cannot use 'continueOn' when using 'depends'
                            rule: '!has(self.depends) || !has(self.continueOn)'
                          - message: task name cannot begin with a digit when using 'depends' or 'dependencies'
                            rule: '!(has(self.depends) || has(self.dependencies)) || !self.name.matches(''^[0-9]'')'
                        maxItems: 200
                        minItems: 1
                        type: array
                    required:
                    - tasks
                    type: object
                  data:
                    properties:
                      source:
                        properties:
                          artifactPaths:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: object
                      transformation:
                        items:
                          properties:
                            expression:
                              type: string
                          required:
                          - expression
                          type: object
                        type: array
                    required:
                    - source
                    - transformation
                    type: object
                  executor:
                    properties:
                      serviceAccountName:
                        type: string
                    type: object
                  failFast:
                    type: boolean
                  hostAliases:
                    items:
                      properties:
                        hostnames:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        ip:
                          type: string
                      required:
                      - ip
                      type: object
                    type: array
                  http:
                    properties:
                      body:
                        type: string
                      bodyFrom:
                        properties:
                          bytes:
                            format: byte
                            type: string
                        type: object
                      headers:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      insecureSkipVerify:
                        type: boolean
                      method:
                        type: string
                      successCondition:
                        type: string
                      timeoutSeconds:
                        format: int64
                        type: integer
                      url:
                        type: string
                    required:
                    - url
                    type: object
                  initContainers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              type: string
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        mirrorVolumeMounts:
                          type: boolean
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          items:
                            properties:
                              resourceName:
                                type: string
                              restartPolicy:
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          properties:
                            claims:
                              items:
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        restartPolicy:
                          type: string
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  inputs:
                    properties:
                      artifacts:
                        items:
                          properties:
                            archive:
                              properties:
                                none:
                                  type: object
                                tar:
                                  properties:
                                    compressionLevel:
                                      format: int32
                                      type: integer
                                  type: object
                                zip:
                                  type: object
                              type: object
                            archiveLogs:
                              type: boolean
                            artifactGC:
                              properties:
                                podMetadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                serviceAccountName:
                                  type: string
                                strategy:
                                  enum:
                                  - ''
                                  - OnWorkflowCompletion
                                  - OnWorkflowDeletion
                                  - Never
                                  type: string
                              type: object
                            artifactory:
                              properties:
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  type: string
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              properties:
                                accountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  type: string
                                container:
                                  type: string
                                endpoint:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            deleted:
                              type: boolean
                            from:
                              type: string
                            fromExpression:
                              type: string
                            gcs:
                              properties:
                                bucket:
                                  type: string
                                key:
                                  type: string
                                serviceAccountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              properties:
                                branch:
                                  type: string
                                depth:
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  type: boolean
                                fetch:
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  type: boolean
                                insecureSkipTLS:
                                  type: boolean
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  type: string
                                revision:
                                  type: string
                                singleBranch:
                                  type: boolean
                                sshPrivateKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            globalName:
                              type: string
                            hdfs:
                              properties:
                                addresses:
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  type: string
                                force:
                                  type: boolean
                                hdfsUser:
                                  type: string
                                krbCCacheSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  type: string
                                krbServicePrincipalName:
                                  type: string
                                krbUsername:
                                  type: string
                                path:
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              properties:
                                auth:
                                  properties:
                                    basicAuth:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      properties:
                                        clientCertSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      properties:
                                        clientIDSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  type: string
                              required:
                              - url
                              type: object
                            mode:
                              format: int32
                              maximum: 511
                              minimum: 0
                              type: integer
                            name:
                              pattern: ^[-a-zA-Z0-9_{}.]+$
                              type: string
                            optional:
                              type: boolean
                            oss:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                createBucketIfNotPresent:
                                  type: boolean
                                endpoint:
                                  type: string
                                key:
                                  type: string
                                lifecycleRule:
                                  properties:
                                    markDeletionAfterDays:
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - key
                              type: object
                            path:
                              type: string
                            plugin:
                              properties:
                                configuration:
                                  type: string
                                connectionTimeoutSeconds:
                                  format: int32
                                  type: integer
                                key:
                                  type: string
                                name:
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              properties:
                                data:
                                  type: string
                              required:
                              - data
                              type: object
                            recurseMode:
                              type: boolean
                            s3:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                caSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  properties:
                                    objectLocking:
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  properties:
                                    enableEncryption:
                                      type: boolean
                                    kmsEncryptionContext:
                                      type: string
                                    kmsKeyId:
                                      type: string
                                    serverSideCustomerKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  type: string
                                insecure:
                                  type: boolean
                                key:
                                  type: string
                                region:
                                  type: string
                                roleARN:
                                  type: string
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  type: boolean
                              type: object
                            subPath:
                              type: string
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: array
                      parameters:
                        items:
                          properties:
                            default:
                              type: string
                            description:
                              type: string
                            enum:
                              items:
                                type: string
                              minItems: 1
                              type: array
                            globalName:
                              type: string
                            name:
                              pattern: ^[-a-zA-Z0-9_]+$
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                default:
                                  type: string
                                event:
                                  type: string
                                expression:
                                  type: string
                                jqFilter:
                                  type: string
                                jsonPath:
                                  type: string
                                parameter:
                                  type: string
                                path:
                                  type: string
                                supplied:
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        maxItems: 500
                        type: array
                    type: object
                  memoize:
                    properties:
                      cache:
                        properties:
                          configMap:
                            properties:
                              name:
                                default: ''
                                type: string
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - configMap
                        type: object
                      key:
                        type: string
                      maxAge:
                        type: string
                    required:
                    - cache
                    - key
                    - maxAge
                    type: object
                  metadata:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  metrics:
                    properties:
                      prometheus:
                        items:
                          properties:
                            counter:
                              properties:
                                value:
                                  minLength: 1
                                  type: string
                              required:
                              - value
                              type: object
                            gauge:
                              properties:
                                operation:
                                  enum:
                                  - Set
                                  - Add
                                  - Sub
                                  type: string
                                realtime:
                                  type: boolean
                                value:
                                  maxLength: 256
                                  minLength: 1
                                  type: string
                              required:
                              - realtime
                              - value
                              type: object
                              x-kubernetes-validations:
                              - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                            help:
                              minLength: 1
                              type: string
                            histogram:
                              properties:
                                buckets:
                                  items:
                                    type: number
                                  type: array
                                value:
                                  minLength: 1
                                  type: string
                              required:
                              - buckets
                              - value
                              type: object
                            labels:
                              items:
                                properties:
                                  key:
                                    pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                    type: string
                                  value:
                                    type: string
                                required:
                                - key
                                - value
                                type: object
                              type: array
                            name:
                              pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                              type: string
                            when:
                              type: string
                          required:
                          - help
                          - name
                          type: object
                        maxItems: 100
                        type: array
                    required:
                    - prometheus
                    type: object
                  name:
                    maxLength: 128
                    pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                    type: string
                  nodeSelector:
                    additionalProperties:
                      type: string
                    type: object
                  outputs:
                    properties:
                      artifacts:
                        items:
                          properties:
                            archive:
                              properties:
                                none:
                                  type: object
                                tar:
                                  properties:
                                    compressionLevel:
                                      format: int32
                                      type: integer
                                  type: object
                                zip:
                                  type: object
                              type: object
                            archiveLogs:
                              type: boolean
                            artifactGC:
                              properties:
                                podMetadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                serviceAccountName:
                                  type: string
                                strategy:
                                  enum:
                                  - ''
                                  - OnWorkflowCompletion
                                  - OnWorkflowDeletion
                                  - Never
                                  type: string
                              type: object
                            artifactory:
                              properties:
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  type: string
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              properties:
                                accountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  type: string
                                container:
                                  type: string
                                endpoint:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            deleted:
                              type: boolean
                            from:
                              type: string
                            fromExpression:
                              type: string
                            gcs:
                              properties:
                                bucket:
                                  type: string
                                key:
                                  type: string
                                serviceAccountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              properties:
                                branch:
                                  type: string
                                depth:
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  type: boolean
                                fetch:
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  type: boolean
                                insecureSkipTLS:
                                  type: boolean
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  type: string
                                revision:
                                  type: string
                                singleBranch:
                                  type: boolean
                                sshPrivateKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            globalName:
                              type: string
                            hdfs:
                              properties:
                                addresses:
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  type: string
                                force:
                                  type: boolean
                                hdfsUser:
                                  type: string
                                krbCCacheSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  type: string
                                krbServicePrincipalName:
                                  type: string
                                krbUsername:
                                  type: string
                                path:
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              properties:
                                auth:
                                  properties:
                                    basicAuth:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      properties:
                                        clientCertSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      properties:
                                        clientIDSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  type: string
                              required:
                              - url
                              type: object
                            mode:
                              format: int32
                              maximum: 511
                              minimum: 0
                              type: integer
                            name:
                              pattern: ^[-a-zA-Z0-9_{}.]+$
                              type: string
                            optional:
                              type: boolean
                            oss:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                createBucketIfNotPresent:
                                  type: boolean
                                endpoint:
                                  type: string
                                key:
                                  type: string
                                lifecycleRule:
                                  properties:
                                    markDeletionAfterDays:
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - key
                              type: object
                            path:
                              type: string
                            plugin:
                              properties:
                                configuration:
                                  type: string
                                connectionTimeoutSeconds:
                                  format: int32
                                  type: integer
                                key:
                                  type: string
                                name:
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              properties:
                                data:
                                  type: string
                              required:
                              - data
                              type: object
                            recurseMode:
                              type: boolean
                            s3:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                caSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  properties:
                                    objectLocking:
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  properties:
                                    enableEncryption:
                                      type: boolean
                                    kmsEncryptionContext:
                                      type: string
                                    kmsKeyId:
                                      type: string
                                    serverSideCustomerKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  type: string
                                insecure:
                                  type: boolean
                                key:
                                  type: string
                                region:
                                  type: string
                                roleARN:
                                  type: string
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  type: boolean
                              type: object
                            subPath:
                              type: string
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: array
                      exitCode:
                        type: string
                      parameters:
                        items:
                          properties:
                            default:
                              type: string
                            description:
                              type: string
                            enum:
                              items:
                                type: string
                              minItems: 1
                              type: array
                            globalName:
                              type: string
                            name:
                              pattern: ^[-a-zA-Z0-9_]+$
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                default:
                                  type: string
                                event:
                                  type: string
                                expression:
                                  type: string
                                jqFilter:
                                  type: string
                                jsonPath:
                                  type: string
                                parameter:
                                  type: string
                                path:
                                  type: string
                                supplied:
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      result:
                        type: string
                    type: object
                  parallelism:
                    format: int64
                    minimum: 1
                    type: integer
                  plugin:
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  podSpecPatch:
                    type: string
                  priorityClassName:
                    type: string
                  resource:
                    properties:
                      action:
                        enum:
                        - get
                        - create
                        - apply
                        - delete
                        - replace
                        - patch
                        type: string
                      failureCondition:
                        type: string
                      flags:
                        items:
                          type: string
                        type: array
                      manifest:
                        type: string
                      manifestFrom:
                        properties:
                          artifact:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        required:
                        - artifact
                        type: object
                      mergeStrategy:
                        enum:
                        - strategic
                        - merge
                        - json
                        type: string
                      setOwnerReference:
                        type: boolean
                      successCondition:
                        type: string
                    required:
                    - action
                    type: object
                    x-kubernetes-validations:
                    - message: only one of manifest or manifestFrom can be specified
                      rule: (has(self.manifest) && !has(self.manifestFrom)) || (!has(self.manifest) && has(self.manifestFrom)) || (!has(self.manifest) && !has(self.manifestFrom))
                  retryStrategy:
                    properties:
                      affinity:
                        properties:
                          nodeAntiAffinity:
                            type: object
                        type: object
                      backoff:
                        properties:
                          cap:
                            type: string
                          duration:
                            type: string
                          factor:
                            anyOf:
                            - type: integer
                            - type: string
                            x-kubernetes-int-or-string: true
                          maxDuration:
                            type: string
                        type: object
                      expression:
                        type: string
                      limit:
                        anyOf:
                        - type: integer
                        - type: string
                        x-kubernetes-int-or-string: true
                      retryPolicy:
                        enum:
                        - Always
                        - OnFailure
                        - OnError
                        - OnTransientError
                        type: string
                    type: object
                  schedulerName:
                    type: string
                  script:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      command:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                  x-kubernetes-map-type: atomic
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                  x-kubernetes-map-type: atomic
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - name
                        x-kubernetes-list-type: map
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          stopSignal:
                            type: string
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      resizePolicy:
                        items:
                          properties:
                            resourceName:
                              type: string
                            restartPolicy:
                              type: string
                          required:
                          - resourceName
                          - restartPolicy
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      resources:
                        properties:
                          claims:
                            items:
                              properties:
                                name:
                                  type: string
                                request:
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      restartPolicy:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          appArmorProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              drop:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      source:
                        type: string
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - devicePath
                        x-kubernetes-list-type: map
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - mountPath
                        x-kubernetes-list-type: map
                      workingDir:
                        type: string
                    type: object
                  securityContext:
                    properties:
                      appArmorProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      fsGroup:
                        format: int64
                        type: integer
                      fsGroupChangePolicy:
                        type: string
                      runAsGroup:
                        format: int64
                        type: integer
                      runAsNonRoot:
                        type: boolean
                      runAsUser:
                        format: int64
                        type: integer
                      seLinuxChangePolicy:
                        type: string
                      seLinuxOptions:
                        properties:
                          level:
                            type: string
                          role:
                            type: string
                          type:
                            type: string
                          user:
                            type: string
                        type: object
                      seccompProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      supplementalGroups:
                        items:
                          format: int64
                          type: integer
                        type: array
                        x-kubernetes-list-type: atomic
                      supplementalGroupsPolicy:
                        type: string
                      sysctls:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      windowsOptions:
                        properties:
                          gmsaCredentialSpec:
                            type: string
                          gmsaCredentialSpecName:
                            type: string
                          hostProcess:
                            type: boolean
                          runAsUserName:
                            type: string
                        type: object
                    type: object
                  serviceAccountName:
                    type: string
                  sidecars:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              type: string
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        mirrorVolumeMounts:
                          type: boolean
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          items:
                            properties:
                              resourceName:
                                type: string
                              restartPolicy:
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          properties:
                            claims:
                              items:
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        restartPolicy:
                          type: string
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  steps:
                    items:
                      items:
                        properties:
                          arguments:
                            properties:
                              artifacts:
                                items:
                                  properties:
                                    archive:
                                      properties:
                                        none:
                                          type: object
                                        tar:
                                          properties:
                                            compressionLevel:
                                              format: int32
                                              type: integer
                                          type: object
                                        zip:
                                          type: object
                                      type: object
                                    archiveLogs:
                                      type: boolean
                                    artifactGC:
                                      properties:
                                        podMetadata:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        serviceAccountName:
                                          type: string
                                        strategy:
                                          enum:
                                          - ''
                                          - OnWorkflowCompletion
                                          - OnWorkflowDeletion
                                          - Never
                                          type: string
                                      type: object
                                    artifactory:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        url:
                                          type: string
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - url
                                      type: object
                                    azure:
                                      properties:
                                        accountKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        blob:
                                          type: string
                                        container:
                                          type: string
                                        endpoint:
                                          type: string
                                        useSDKCreds:
                                          type: boolean
                                      required:
                                      - blob
                                      - container
                                      - endpoint
                                      type: object
                                    deleted:
                                      type: boolean
                                    from:
                                      type: string
                                    fromExpression:
                                      type: string
                                    gcs:
                                      properties:
                                        bucket:
                                          type: string
                                        key:
                                          type: string
                                        serviceAccountKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - key
                                      type: object
                                    git:
                                      properties:
                                        branch:
                                          type: string
                                        depth:
                                          format: int64
                                          type: integer
                                        disableSubmodules:
                                          type: boolean
                                        fetch:
                                          items:
                                            type: string
                                          type: array
                                        insecureIgnoreHostKey:
                                          type: boolean
                                        insecureSkipTLS:
                                          type: boolean
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        repo:
                                          type: string
                                        revision:
                                          type: string
                                        singleBranch:
                                          type: boolean
                                        sshPrivateKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - repo
                                      type: object
                                    globalName:
                                      type: string
                                    hdfs:
                                      properties:
                                        addresses:
                                          items:
                                            type: string
                                          type: array
                                        dataTransferProtection:
                                          type: string
                                        force:
                                          type: boolean
                                        hdfsUser:
                                          type: string
                                        krbCCacheSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbConfigConfigMap:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbKeytabSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbRealm:
                                          type: string
                                        krbServicePrincipalName:
                                          type: string
                                        krbUsername:
                                          type: string
                                        path:
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    http:
                                      properties:
                                        auth:
                                          properties:
                                            basicAuth:
                                              properties:
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            clientCert:
                                              properties:
                                                clientCertSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            oauth2:
                                              properties:
                                                clientIDSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientSecretSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                endpointParams:
                                                  items:
                                                    properties:
                                                      key:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - key
                                                    type: object
                                                  type: array
                                                scopes:
                                                  items:
                                                    type: string
                                                  type: array
                                                tokenURLSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                          type: object
                                        headers:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        url:
                                          type: string
                                      required:
                                      - url
                                      type: object
                                    mode:
                                      format: int32
                                      maximum: 511
                                      minimum: 0
                                      type: integer
                                    name:
                                      pattern: ^[-a-zA-Z0-9_{}.]+$
                                      type: string
                                    optional:
                                      type: boolean
                                    oss:
                                      properties:
                                        accessKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          type: string
                                        createBucketIfNotPresent:
                                          type: boolean
                                        endpoint:
                                          type: string
                                        key:
                                          type: string
                                        lifecycleRule:
                                          properties:
                                            markDeletionAfterDays:
                                              format: int32
                                              type: integer
                                            markInfrequentAccessAfterDays:
                                              format: int32
                                              type: integer
                                          type: object
                                        secretKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        securityToken:
                                          type: string
                                        useSDKCreds:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    path:
                                      type: string
                                    plugin:
                                      properties:
                                        configuration:
                                          type: string
                                        connectionTimeoutSeconds:
                                          format: int32
                                          type: integer
                                        key:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - key
                                      type: object
                                    raw:
                                      properties:
                                        data:
                                          type: string
                                      required:
                                      - data
                                      type: object
                                    recurseMode:
                                      type: boolean
                                    s3:
                                      properties:
                                        accessKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          type: string
                                        caSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        createBucketIfNotPresent:
                                          properties:
                                            objectLocking:
                                              type: boolean
                                          type: object
                                        encryptionOptions:
                                          properties:
                                            enableEncryption:
                                              type: boolean
                                            kmsEncryptionContext:
                                              type: string
                                            kmsKeyId:
                                              type: string
                                            serverSideCustomerKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        endpoint:
                                          type: string
                                        insecure:
                                          type: boolean
                                        key:
                                          type: string
                                        region:
                                          type: string
                                        roleARN:
                                          type: string
                                        secretKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        sessionTokenSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        useSDKCreds:
                                          type: boolean
                                      type: object
                                    subPath:
                                      type: string
                                  required:
                                  - name
                                  type: object
                                  x-kubernetes-validations:
                                  - message: at most one artifact location can be specified
                                    rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                type: array
                              parameters:
                                items:
                                  properties:
                                    default:
                                      type: string
                                    description:
                                      type: string
                                    enum:
                                      items:
                                        type: string
                                      minItems: 1
                                      type: array
                                    globalName:
                                      type: string
                                    name:
                                      pattern: ^[-a-zA-Z0-9_]+$
                                      type: string
                                    value:
                                      type: string
                                    valueFrom:
                                      properties:
                                        configMapKeyRef:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        default:
                                          type: string
                                        event:
                                          type: string
                                        expression:
                                          type: string
                                        jqFilter:
                                          type: string
                                        jsonPath:
                                          type: string
                                        parameter:
                                          type: string
                                        path:
                                          type: string
                                        supplied:
                                          type: object
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                            type: object
                          continueOn:
                            properties:
                              error:
                                type: boolean
                              failed:
                                type: boolean
                            type: object
                          hooks:
                            additionalProperties:
                              properties:
                                arguments:
                                  properties:
                                    artifacts:
                                      items:
                                        properties:
                                          archive:
                                            properties:
                                              none:
                                                type: object
                                              tar:
                                                properties:
                                                  compressionLevel:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              zip:
                                                type: object
                                            type: object
                                          archiveLogs:
                                            type: boolean
                                          artifactGC:
                                            properties:
                                              podMetadata:
                                                properties:
                                                  annotations:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                  labels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                              serviceAccountName:
                                                type: string
                                              strategy:
                                                enum:
                                                - ''
                                                - OnWorkflowCompletion
                                                - OnWorkflowDeletion
                                                - Never
                                                type: string
                                            type: object
                                          artifactory:
                                            properties:
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              url:
                                                type: string
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - url
                                            type: object
                                          azure:
                                            properties:
                                              accountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              blob:
                                                type: string
                                              container:
                                                type: string
                                              endpoint:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - blob
                                            - container
                                            - endpoint
                                            type: object
                                          deleted:
                                            type: boolean
                                          from:
                                            type: string
                                          fromExpression:
                                            type: string
                                          gcs:
                                            properties:
                                              bucket:
                                                type: string
                                              key:
                                                type: string
                                              serviceAccountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - key
                                            type: object
                                          git:
                                            properties:
                                              branch:
                                                type: string
                                              depth:
                                                format: int64
                                                type: integer
                                              disableSubmodules:
                                                type: boolean
                                              fetch:
                                                items:
                                                  type: string
                                                type: array
                                              insecureIgnoreHostKey:
                                                type: boolean
                                              insecureSkipTLS:
                                                type: boolean
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              repo:
                                                type: string
                                              revision:
                                                type: string
                                              singleBranch:
                                                type: boolean
                                              sshPrivateKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - repo
                                            type: object
                                          globalName:
                                            type: string
                                          hdfs:
                                            properties:
                                              addresses:
                                                items:
                                                  type: string
                                                type: array
                                              dataTransferProtection:
                                                type: string
                                              force:
                                                type: boolean
                                              hdfsUser:
                                                type: string
                                              krbCCacheSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbConfigConfigMap:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbKeytabSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbRealm:
                                                type: string
                                              krbServicePrincipalName:
                                                type: string
                                              krbUsername:
                                                type: string
                                              path:
                                                type: string
                                            required:
                                            - path
                                            type: object
                                          http:
                                            properties:
                                              auth:
                                                properties:
                                                  basicAuth:
                                                    properties:
                                                      passwordSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      usernameSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  clientCert:
                                                    properties:
                                                      clientCertSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientKeySecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  oauth2:
                                                    properties:
                                                      clientIDSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientSecretSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      endpointParams:
                                                        items:
                                                          properties:
                                                            key:
                                                              type: string
                                                            value:
                                                              type: string
                                                          required:
                                                          - key
                                                          type: object
                                                        type: array
                                                      scopes:
                                                        items:
                                                          type: string
                                                        type: array
                                                      tokenURLSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                type: object
                                              headers:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              url:
                                                type: string
                                            required:
                                            - url
                                            type: object
                                          mode:
                                            format: int32
                                            maximum: 511
                                            minimum: 0
                                            type: integer
                                          name:
                                            pattern: ^[-a-zA-Z0-9_{}.]+$
                                            type: string
                                          optional:
                                            type: boolean
                                          oss:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              createBucketIfNotPresent:
                                                type: boolean
                                              endpoint:
                                                type: string
                                              key:
                                                type: string
                                              lifecycleRule:
                                                properties:
                                                  markDeletionAfterDays:
                                                    format: int32
                                                    type: integer
                                                  markInfrequentAccessAfterDays:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              securityToken:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                          path:
                                            type: string
                                          plugin:
                                            properties:
                                              configuration:
                                                type: string
                                              connectionTimeoutSeconds:
                                                format: int32
                                                type: integer
                                              key:
                                                type: string
                                              name:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          raw:
                                            properties:
                                              data:
                                                type: string
                                            required:
                                            - data
                                            type: object
                                          recurseMode:
                                            type: boolean
                                          s3:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              caSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              createBucketIfNotPresent:
                                                properties:
                                                  objectLocking:
                                                    type: boolean
                                                type: object
                                              encryptionOptions:
                                                properties:
                                                  enableEncryption:
                                                    type: boolean
                                                  kmsEncryptionContext:
                                                    type: string
                                                  kmsKeyId:
                                                    type: string
                                                  serverSideCustomerKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              endpoint:
                                                type: string
                                              insecure:
                                                type: boolean
                                              key:
                                                type: string
                                              region:
                                                type: string
                                              roleARN:
                                                type: string
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              sessionTokenSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              useSDKCreds:
                                                type: boolean
                                            type: object
                                          subPath:
                                            type: string
                                        required:
                                        - name
                                        type: object
                                        x-kubernetes-validations:
                                        - message: at most one artifact location can be specified
                                          rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                      type: array
                                    parameters:
                                      items:
                                        properties:
                                          default:
                                            type: string
                                          description:
                                            type: string
                                          enum:
                                            items:
                                              type: string
                                            minItems: 1
                                            type: array
                                          globalName:
                                            type: string
                                          name:
                                            pattern: ^[-a-zA-Z0-9_]+$
                                            type: string
                                          value:
                                            type: string
                                          valueFrom:
                                            properties:
                                              configMapKeyRef:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              default:
                                                type: string
                                              event:
                                                type: string
                                              expression:
                                                type: string
                                              jqFilter:
                                                type: string
                                              jsonPath:
                                                type: string
                                              parameter:
                                                type: string
                                              path:
                                                type: string
                                              supplied:
                                                type: object
                                            type: object
                                        required:
                                        - name
                                        type: object
                                      type: array
                                  type: object
                                expression:
                                  type: string
                                template:
                                  type: string
                                templateRef:
                                  properties:
                                    clusterScope:
                                      type: boolean
                                    name:
                                      type: string
                                    template:
                                      type: string
                                  type: object
                              type: object
                            type: object
                          inline:
                            x-kubernetes-preserve-unknown-fields: true
                          name:
                            maxLength: 128
                            pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                            type: string
                          onExit:
                            type: string
                          template:
                            type: string
                          templateRef:
                            properties:
                              clusterScope:
                                type: boolean
                              name:
                                type: string
                              template:
                                type: string
                            type: object
                          when:
                            type: string
                          withItems:
                            x-kubernetes-preserve-unknown-fields: true
                          withParam:
                            type: string
                          withSequence:
                            properties:
                              count:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              end:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              format:
                                type: string
                              start:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                            x-kubernetes-validations:
                            - message: only one of count or end can be defined
                              rule: '!(has(self.count) && has(self.end))'
                        type: object
                      type: array
                    minItems: 1
                    type: array
                  suspend:
                    properties:
                      duration:
                        type: string
                    type: object
                  synchronization:
                    properties:
                      mutexes:
                        items:
                          properties:
                            database:
                              type: boolean
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        type: array
                      semaphores:
                        items:
                          properties:
                            configMapKeyRef:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            database:
                              properties:
                                key:
                                  type: string
                              required:
                              - key
                              type: object
                            namespace:
                              type: string
                          type: object
                        type: array
                    type: object
                  timeout:
                    type: string
                  tolerations:
                    items:
                      properties:
                        effect:
                          type: string
                        key:
                          type: string
                        operator:
                          type: string
                        tolerationSeconds:
                          format: int64
                          type: integer
                        value:
                          type: string
                      type: object
                    type: array
                  volumes:
                    items:
                      properties:
                        awsElasticBlockStore:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        azureDisk:
                          properties:
                            cachingMode:
                              type: string
                            diskName:
                              type: string
                            diskURI:
                              type: string
                            fsType:
                              default: ext4
                              type: string
                            kind:
                              type: string
                            readOnly:
                              default: false
                              type: boolean
                          required:
                          - diskName
                          - diskURI
                          type: object
                        azureFile:
                          properties:
                            readOnly:
                              type: boolean
                            secretName:
                              type: string
                            shareName:
                              type: string
                          required:
                          - secretName
                          - shareName
                          type: object
                        cephfs:
                          properties:
                            monitors:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            secretFile:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            user:
                              type: string
                          required:
                          - monitors
                          type: object
                        cinder:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        configMap:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            name:
                              default: ''
                              type: string
                            optional:
                              type: boolean
                          type: object
                          x-kubernetes-map-type: atomic
                        csi:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            nodePublishSecretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            readOnly:
                              type: boolean
                            volumeAttributes:
                              additionalProperties:
                                type: string
                              type: object
                          required:
                          - driver
                          type: object
                        downwardAPI:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        emptyDir:
                          properties:
                            medium:
                              type: string
                            sizeLimit:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                          type: object
                        ephemeral:
                          properties:
                            volumeClaimTemplate:
                              properties:
                                metadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    finalizers:
                                      items:
                                        type: string
                                      type: array
                                    generateName:
                                      type: string
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  type: object
                                spec:
                                  properties:
                                    accessModes:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    dataSource:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    dataSourceRef:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                        namespace:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    resources:
                                      properties:
                                        limits:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          type: object
                                        requests:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          type: object
                                      type: object
                                    selector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    storageClassName:
                                      type: string
                                    volumeAttributesClassName:
                                      type: string
                                    volumeMode:
                                      type: string
                                    volumeName:
                                      type: string
                                  type: object
                              required:
                              - spec
                              type: object
                          type: object
                        fc:
                          properties:
                            fsType:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            targetWWNs:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            wwids:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        flexVolume:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            options:
                              additionalProperties:
                                type: string
                              type: object
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - driver
                          type: object
                        flocker:
                          properties:
                            datasetName:
                              type: string
                            datasetUUID:
                              type: string
                          type: object
                        gcePersistentDisk:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            pdName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - pdName
                          type: object
                        gitRepo:
                          properties:
                            directory:
                              type: string
                            repository:
                              type: string
                            revision:
                              type: string
                          required:
                          - repository
                          type: object
                        glusterfs:
                          properties:
                            endpoints:
                              type: string
                            path:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - endpoints
                          - path
                          type: object
                        hostPath:
                          properties:
                            path:
                              type: string
                            type:
                              type: string
                          required:
                          - path
                          type: object
                        image:
                          properties:
                            pullPolicy:
                              type: string
                            reference:
                              type: string
                          type: object
                        iscsi:
                          properties:
                            chapAuthDiscovery:
                              type: boolean
                            chapAuthSession:
                              type: boolean
                            fsType:
                              type: string
                            initiatorName:
                              type: string
                            iqn:
                              type: string
                            iscsiInterface:
                              default: default
                              type: string
                            lun:
                              format: int32
                              type: integer
                            portals:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            targetPortal:
                              type: string
                          required:
                          - iqn
                          - lun
                          - targetPortal
                          type: object
                        name:
                          type: string
                        nfs:
                          properties:
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            server:
                              type: string
                          required:
                          - path
                          - server
                          type: object
                        persistentVolumeClaim:
                          properties:
                            claimName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - claimName
                          type: object
                        photonPersistentDisk:
                          properties:
                            fsType:
                              type: string
                            pdID:
                              type: string
                          required:
                          - pdID
                          type: object
                        portworxVolume:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        projected:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            sources:
                              items:
                                properties:
                                  clusterTrustBundle:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                      path:
                                        type: string
                                      signerName:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  configMap:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  downwardAPI:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  secret:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  serviceAccountToken:
                                    properties:
                                      audience:
                                        type: string
                                      expirationSeconds:
                                        format: int64
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        quobyte:
                          properties:
                            group:
                              type: string
                            readOnly:
                              type: boolean
                            registry:
                              type: string
                            tenant:
                              type: string
                            user:
                              type: string
                            volume:
                              type: string
                          required:
                          - registry
                          - volume
                          type: object
                        rbd:
                          properties:
                            fsType:
                              type: string
                            image:
                              type: string
                            keyring:
                              default: /etc/ceph/keyring
                              type: string
                            monitors:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            pool:
                              default: rbd
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            user:
                              default: admin
                              type: string
                          required:
                          - image
                          - monitors
                          type: object
                        scaleIO:
                          properties:
                            fsType:
                              default: xfs
                              type: string
                            gateway:
                              type: string
                            protectionDomain:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            sslEnabled:
                              type: boolean
                            storageMode:
                              default: ThinProvisioned
                              type: string
                            storagePool:
                              type: string
                            system:
                              type: string
                            volumeName:
                              type: string
                          required:
                          - gateway
                          - secretRef
                          - system
                          type: object
                        secret:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            optional:
                              type: boolean
                            secretName:
                              type: string
                          type: object
                        storageos:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            volumeName:
                              type: string
                            volumeNamespace:
                              type: string
                          type: object
                        vsphereVolume:
                          properties:
                            fsType:
                              type: string
                            storagePolicyID:
                              type: string
                            storagePolicyName:
                              type: string
                            volumePath:
                              type: string
                          required:
                          - volumePath
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
              templates:
                description: 'Templates is a list of workflow templates used in a workflow

                  MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                items:
                  description: Template is a reusable and composable unit of execution in a workflow
                  properties:
                    activeDeadlineSeconds:
                      anyOf:
                      - type: integer
                      - type: string
                      description: 'Optional duration in seconds relative to the StartTime that the pod may be active on a node

                        before the system actively tries to terminate the pod; value must be positive integer

                        This field is only applicable to container and script templates.'
                      x-kubernetes-int-or-string: true
                    affinity:
                      description: 'Affinity sets the pod''s scheduling constraints

                        Overrides the affinity set at the workflow level (if any)'
                      properties:
                        nodeAffinity:
                          description: Describes node affinity scheduling rules for the pod.
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node matches the corresponding matchExpressions; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: 'An empty preferred scheduling term matches all objects with implicit weight 0

                                  (i.e. it''s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).'
                                properties:
                                  preference:
                                    description: A node selector term, associated with the corresponding weight.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements by node's labels.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        description: A list of node selector requirements by node's fields.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  weight:
                                    description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                                    format: int32
                                    type: integer
                                required:
                                - preference
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to an update), the system

                                may or may not try to eventually evict the pod from its node.'
                              properties:
                                nodeSelectorTerms:
                                  description: Required. A list of node selector terms. The terms are ORed.
                                  items:
                                    description: 'A null or empty node selector term matches no objects. The requirements of

                                      them are ANDed.

                                      The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.'
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements by node's labels.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        description: A list of node selector requirements by node's fields.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                              - nodeSelectorTerms
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        podAffinity:
                          description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: 'A label query over a set of resources, in this case pods.

                                          If it''s null, this PodAffinityTerm matches with no Pods.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                          Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                          Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        description: 'A label query over the set of namespaces that the term applies to.

                                          The term is applied to the union of the namespaces selected by this field

                                          and the ones listed in the namespaces field.

                                          null selector and null or empty namespaces list means "this pod''s namespace".

                                          An empty selector ({}) matches all namespaces.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        description: 'namespaces specifies a static list of namespace names that the term applies to.

                                          The term is applied to the union of the namespaces listed in this field

                                          and the ones selected by namespaceSelector.

                                          null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                          the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                          whose value of the label with key topologyKey matches that of any node on which any of the

                                          selected pods is running.

                                          Empty topologyKey is not allowed.'
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: 'weight associated with matching the corresponding podAffinityTerm,

                                      in the range 1-100.'
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to a pod label update), the

                                system may or may not try to eventually evict the pod from its node.

                                When there are multiple elements, the lists of nodes corresponding to each

                                podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                              items:
                                description: 'Defines a set of pods (namely those matching the labelSelector

                                  relative to the given namespace(s)) that this pod should be

                                  co-located (affinity) or not co-located (anti-affinity) with,

                                  where co-located is defined as running on a node whose value of

                                  the label with key <topologyKey> matches that of any node on which

                                  a pod of the set of pods is running'
                                properties:
                                  labelSelector:
                                    description: 'A label query over a set of resources, in this case pods.

                                      If it''s null, this PodAffinityTerm matches with no Pods.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                      Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                      Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    description: 'A label query over the set of namespaces that the term applies to.

                                      The term is applied to the union of the namespaces selected by this field

                                      and the ones listed in the namespaces field.

                                      null selector and null or empty namespaces list means "this pod''s namespace".

                                      An empty selector ({}) matches all namespaces.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    description: 'namespaces specifies a static list of namespace names that the term applies to.

                                      The term is applied to the union of the namespaces listed in this field

                                      and the ones selected by namespaceSelector.

                                      null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                      the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                      whose value of the label with key topologyKey matches that of any node on which any of the

                                      selected pods is running.

                                      Empty topologyKey is not allowed.'
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        podAntiAffinity:
                          description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the anti-affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling anti-affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: 'A label query over a set of resources, in this case pods.

                                          If it''s null, this PodAffinityTerm matches with no Pods.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                          Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                          Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        description: 'A label query over the set of namespaces that the term applies to.

                                          The term is applied to the union of the namespaces selected by this field

                                          and the ones listed in the namespaces field.

                                          null selector and null or empty namespaces list means "this pod''s namespace".

                                          An empty selector ({}) matches all namespaces.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        description: 'namespaces specifies a static list of namespace names that the term applies to.

                                          The term is applied to the union of the namespaces listed in this field

                                          and the ones selected by namespaceSelector.

                                          null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                          the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                          whose value of the label with key topologyKey matches that of any node on which any of the

                                          selected pods is running.

                                          Empty topologyKey is not allowed.'
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: 'weight associated with matching the corresponding podAffinityTerm,

                                      in the range 1-100.'
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the anti-affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the anti-affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to a pod label update), the

                                system may or may not try to eventually evict the pod from its node.

                                When there are multiple elements, the lists of nodes corresponding to each

                                podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                              items:
                                description: 'Defines a set of pods (namely those matching the labelSelector

                                  relative to the given namespace(s)) that this pod should be

                                  co-located (affinity) or not co-located (anti-affinity) with,

                                  where co-located is defined as running on a node whose value of

                                  the label with key <topologyKey> matches that of any node on which

                                  a pod of the set of pods is running'
                                properties:
                                  labelSelector:
                                    description: 'A label query over a set of resources, in this case pods.

                                      If it''s null, this PodAffinityTerm matches with no Pods.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                      Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                      Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    description: 'A label query over the set of namespaces that the term applies to.

                                      The term is applied to the union of the namespaces selected by this field

                                      and the ones listed in the namespaces field.

                                      null selector and null or empty namespaces list means "this pod''s namespace".

                                      An empty selector ({}) matches all namespaces.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    description: 'namespaces specifies a static list of namespace names that the term applies to.

                                      The term is applied to the union of the namespaces listed in this field

                                      and the ones selected by namespaceSelector.

                                      null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                      the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                      whose value of the label with key topologyKey matches that of any node on which any of the

                                      selected pods is running.

                                      Empty topologyKey is not allowed.'
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                      type: object
                    annotations:
                      additionalProperties:
                        type: string
                      description: Annotations is a list of annotations to add to the template at runtime
                      type: object
                    archiveLocation:
                      description: 'Location in which all files related to the step will be stored (logs, artifacts, etc...).

                        Can be overridden by individual items in Outputs. If omitted, will use the default

                        artifact repository location configured in the controller, appended with the

                        <workflowname>/<nodename> in the key.'
                      properties:
                        archiveLogs:
                          description: ArchiveLogs indicates if the container logs should be archived
                          type: boolean
                        artifactory:
                          description: Artifactory contains artifactory artifact location details
                          properties:
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              description: URL of the artifact
                              type: string
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          description: Azure contains Azure Storage artifact location details
                          properties:
                            accountKeySecret:
                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                              type: string
                            container:
                              description: Container is the container where resources will be stored
                              type: string
                            endpoint:
                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        gcs:
                          description: GCS contains GCS artifact location details
                          properties:
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            serviceAccountKeySecret:
                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          description: Git contains git artifact location details
                          properties:
                            branch:
                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                              type: string
                            depth:
                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                number of commits from the branch tip'
                              format: int64
                              type: integer
                            disableSubmodules:
                              description: DisableSubmodules disables submodules during git clone
                              type: boolean
                            fetch:
                              description: Fetch specifies a number of refs that should be fetched before checkout
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                              type: boolean
                            insecureSkipTLS:
                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                              type: boolean
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              description: Repo is the git repository
                              type: string
                            revision:
                              description: Revision is the git commit, tag, branch to checkout
                              type: string
                            singleBranch:
                              description: SingleBranch enables single branch clone, using the `branch` parameter
                              type: boolean
                            sshPrivateKeySecret:
                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        hdfs:
                          description: HDFS contains HDFS artifact location details
                          properties:
                            addresses:
                              description: Addresses is accessible addresses of HDFS name nodes
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                              type: string
                            force:
                              description: Force copies a file forcibly even if it exists
                              type: boolean
                            hdfsUser:
                              description: 'HDFSUser is the user to access HDFS file system.

                                It is ignored if either ccache or keytab is used.'
                              type: string
                            krbCCacheSecret:
                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                It must be set if either ccache or keytab is used.'
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            krbServicePrincipalName:
                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                It must be set if either ccache or keytab is used.'
                              type: string
                            krbUsername:
                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            path:
                              description: Path is a file path in HDFS
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          description: HTTP contains HTTP artifact location details
                          properties:
                            auth:
                              description: Auth contains information for client authentication
                              properties:
                                basicAuth:
                                  description: BasicAuth describes the secret selectors required for basic authentication
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                  properties:
                                    clientCertSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                  properties:
                                    clientIDSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                        properties:
                                          key:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                              items:
                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                properties:
                                  name:
                                    description: Name is the header name
                                    type: string
                                  value:
                                    description: Value is the literal value to use for the header
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              description: URL of the artifact
                              type: string
                          required:
                          - url
                          type: object
                        oss:
                          description: OSS contains OSS artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                              type: boolean
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            lifecycleRule:
                              description: LifecycleRule specifies how to manage bucket's lifecycle
                              properties:
                                markDeletionAfterDays:
                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - key
                          type: object
                        plugin:
                          description: Plugin contains plugin artifact location details
                          properties:
                            configuration:
                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                              type: string
                            connectionTimeoutSeconds:
                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                              format: int32
                              type: integer
                            key:
                              description: Key is the path in the artifact repository where the artifact resides
                              type: string
                            name:
                              description: Name is the name of the artifact driver plugin
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          description: Raw contains raw artifact location details
                          properties:
                            data:
                              description: Data is the string contents of the artifact
                              type: string
                          required:
                          - data
                          type: object
                        s3:
                          description: S3 contains S3 artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            caSecret:
                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                              properties:
                                objectLocking:
                                  description: ObjectLocking Enable object locking
                                  type: boolean
                              type: object
                            encryptionOptions:
                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                              properties:
                                enableEncryption:
                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                  type: boolean
                                kmsEncryptionContext:
                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                  type: string
                                kmsKeyId:
                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                  type: string
                                serverSideCustomerKeySecret:
                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            insecure:
                              description: Insecure will connect to the service with TLS
                              type: boolean
                            key:
                              description: Key is the key in the bucket where the artifact resides
                              type: string
                            region:
                              description: Region contains the optional bucket region
                              type: string
                            roleARN:
                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                              type: string
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          type: object
                      type: object
                      x-kubernetes-validations:
                      - message: at most one artifact location can be specified
                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                    automountServiceAccountToken:
                      description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods.

                        ServiceAccountName of ExecutorConfig must be specified if this value is false.'
                      type: boolean
                    container:
                      description: Container is the main container image to run in the pod
                      properties:
                        args:
                          description: 'Arguments to the entrypoint.

                            The container image''s CMD is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          description: 'Entrypoint array. Not executed within a shell.

                            The container image''s ENTRYPOINT is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          description: 'List of environment variables to set in the container.

                            Cannot be updated.'
                          items:
                            description: EnvVar represents an environment variable present in a Container.
                            properties:
                              name:
                                description: Name of the environment variable. Must be a C_IDENTIFIER.
                                type: string
                              value:
                                description: 'Variable references $(VAR_NAME) are expanded

                                  using the previously defined environment variables in the container and

                                  any service environment variables. If a variable cannot be resolved,

                                  the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                  "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                  Escaped references will never be expanded, regardless of whether the variable

                                  exists or not.

                                  Defaults to "".'
                                type: string
                              valueFrom:
                                description: Source for the environment variable's value. Cannot be used if value is not empty.
                                properties:
                                  configMapKeyRef:
                                    description: Selects a key of a ConfigMap.
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                      spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                    properties:
                                      apiVersion:
                                        description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                        type: string
                                      fieldPath:
                                        description: Path of the field to select in the specified API version.
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    description: 'Selects a resource of the container: only resources limits and requests

                                      (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                    properties:
                                      containerName:
                                        description: 'Container name: required for volumes, optional for env vars'
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Specifies the output format of the exposed resources, defaults to "1"
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        description: 'Required: resource to select'
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    description: Selects a key of a secret in the pod's namespace
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          description: 'List of sources to populate environment variables in the container.

                            The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                            will be reported as an event when the container is starting. When a key exists in multiple

                            sources, the value associated with the last source will take precedence.

                            Values defined by an Env with a duplicate key will take precedence.

                            Cannot be updated.'
                          items:
                            description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                            properties:
                              configMapRef:
                                description: The ConfigMap to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                type: string
                              secretRef:
                                description: The Secret to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the Secret must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          description: 'Container image name.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                        imagePullPolicy:
                          description: 'Image pull policy.

                            One of Always, Never, IfNotPresent.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                          type: string
                        lifecycle:
                          description: 'Actions that the management system should take in response to container lifecycle events.

                            Cannot be updated.'
                          properties:
                            postStart:
                              description: 'PostStart is called immediately after a container is created. If the handler fails,

                                the container is terminated and restarted according to its restart policy.

                                Other management of the container blocks until the hook completes.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              description: 'PreStop is called immediately before a container is terminated due to an

                                API request or management event such as liveness/startup probe failure,

                                preemption, resource contention, etc. The handler is not called if the

                                container crashes or exits. The Pod''s termination grace period countdown begins before the

                                PreStop hook is executed. Regardless of the outcome of the handler, the

                                container will eventually terminate within the Pod''s termination grace

                                period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                or until the termination grace period is reached.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                If not specified, the default is defined by the container runtime in use.

                                StopSignal can only be set for Pods with a non-empty .spec.os.name'
                              type: string
                          type: object
                        livenessProbe:
                          description: 'Periodic probe of container liveness.

                            Container will be restarted if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        name:
                          description: 'Name of the container specified as a DNS_LABEL.

                            Each container in a pod must have a unique name (DNS_LABEL).

                            Cannot be updated.'
                          type: string
                        ports:
                          description: 'List of ports to expose from the container. Not specifying a port here

                            DOES NOT prevent that port from being exposed. Any port which is

                            listening on the default "0.0.0.0" address inside a container will be

                            accessible from the network.

                            Modifying this array with strategic merge patch may corrupt the data.

                            For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                            Cannot be updated.'
                          items:
                            description: ContainerPort represents a network port in a single container.
                            properties:
                              containerPort:
                                description: 'Number of port to expose on the pod''s IP address.

                                  This must be a valid port number, 0 < x < 65536.'
                                format: int32
                                type: integer
                              hostIP:
                                description: What host IP to bind the external port to.
                                type: string
                              hostPort:
                                description: 'Number of port to expose on the host.

                                  If specified, this must be a valid port number, 0 < x < 65536.

                                  If HostNetwork is specified, this must match ContainerPort.

                                  Most containers do not need this.'
                                format: int32
                                type: integer
                              name:
                                description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                  named port in a pod must have a unique name. Name for the port that can be

                                  referred to by services.'
                                type: string
                              protocol:
                                default: TCP
                                description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                  Defaults to "TCP".'
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          description: 'Periodic probe of container service readiness.

                            Container will be removed from service endpoints if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          description: Resources resize policy for the container.
                          items:
                            description: ContainerResizePolicy represents resource resize policy for the container.
                            properties:
                              resourceName:
                                description: 'Name of the resource to which this resource resize policy applies.

                                  Supported values: cpu, memory.'
                                type: string
                              restartPolicy:
                                description: 'Restart policy to apply when specified resource is resized.

                                  If not specified, it defaults to NotRequired.'
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          description: 'Compute Resources required by this container.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                          properties:
                            claims:
                              description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                that are used by this container.


                                This is an alpha field and requires enabling the

                                DynamicResourceAllocation feature gate.


                                This field is immutable. It can only be set for containers.'
                              items:
                                description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                properties:
                                  name:
                                    description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                      the Pod where this field is used. It makes that resource available

                                      inside a container.'
                                    type: string
                                  request:
                                    description: 'Request is the name chosen for a request in the referenced claim.

                                      If empty, everything from the claim is made available, otherwise

                                      only the result of this request.'
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        restartPolicy:
                          description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                            This field may only be set for init containers, and the only allowed value is "Always".

                            For non-init containers or when this field is not specified,

                            the restart behavior is defined by the Pod''s restart policy and the container type.

                            Setting the RestartPolicy as "Always" for the init container will have the following effect:

                            this init container will be continually restarted on

                            exit until all regular containers have terminated. Once all regular

                            containers have completed, all init containers with restartPolicy "Always"

                            will be shut down. This lifecycle differs from normal init containers and

                            is often referred to as a "sidecar" container. Although this init

                            container still starts in the init container sequence, it does not wait

                            for the container to complete before proceeding to the next init

                            container. Instead, the next init container starts immediately after this

                            init container is started, or after any startupProbe has successfully

                            completed.'
                          type: string
                        securityContext:
                          description: 'SecurityContext defines the security options the container should be run with.

                            If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                            More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                          properties:
                            allowPrivilegeEscalation:
                              description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                privileges than its parent process. This bool directly controls if

                                the no_new_privs flag will be set on the container process.

                                AllowPrivilegeEscalation is true always when the container is:

                                1) run as Privileged

                                2) has CAP_SYS_ADMIN

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            appArmorProfile:
                              description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                overrides the pod''s appArmorProfile.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must match the loaded name of the profile.

                                    Must be set if and only if type is "Localhost".'
                                  type: string
                                type:
                                  description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              description: 'The capabilities to add/drop when running containers.

                                Defaults to the default set of capabilities granted by the container runtime.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                add:
                                  description: Added capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  description: Removed capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              description: 'Run container in privileged mode.

                                Processes in privileged containers are essentially equivalent to root on the host.

                                Defaults to false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            procMount:
                              description: 'procMount denotes the type of proc mount to use for the containers.

                                The default value is Default which uses the container runtime defaults for

                                readonly paths and masked paths.

                                This requires the ProcMountType feature flag to be enabled.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            readOnlyRootFilesystem:
                              description: 'Whether this container has a read-only root filesystem.

                                Default is false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            runAsGroup:
                              description: 'The GID to run the entrypoint of the container process.

                                Uses runtime default if unset.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            runAsNonRoot:
                              description: 'Indicates that the container must run as a non-root user.

                                If true, the Kubelet will validate the image at runtime to ensure that it

                                does not run as UID 0 (root) and fail to start the container if it does.

                                If unset or false, no such validation will be performed.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: boolean
                            runAsUser:
                              description: 'The UID to run the entrypoint of the container process.

                                Defaults to user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            seLinuxOptions:
                              description: 'The SELinux context to be applied to the container.

                                If unspecified, the container runtime will allocate a random SELinux context for each

                                container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                level:
                                  description: Level is SELinux level label that applies to the container.
                                  type: string
                                role:
                                  description: Role is a SELinux role label that applies to the container.
                                  type: string
                                type:
                                  description: Type is a SELinux type label that applies to the container.
                                  type: string
                                user:
                                  description: User is a SELinux user label that applies to the container.
                                  type: string
                              type: object
                            seccompProfile:
                              description: 'The seccomp options to use by this container. If seccomp options are

                                provided at both the pod & container level, the container options

                                override the pod options.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                    Must be set if type is "Localhost". Must NOT be set for any other type.'
                                  type: string
                                type:
                                  description: 'type indicates which kind of seccomp profile will be applied.

                                    Valid options are:


                                    Localhost - a profile defined in a file on the node should be used.

                                    RuntimeDefault - the container runtime default profile should be used.

                                    Unconfined - no profile should be applied.'
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              description: 'The Windows specific settings applied to all containers.

                                If unspecified, the options from the PodSecurityContext will be used.

                                If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is linux.'
                              properties:
                                gmsaCredentialSpec:
                                  description: 'GMSACredentialSpec is where the GMSA admission webhook

                                    (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                    GMSA credential spec named by the GMSACredentialSpecName field.'
                                  type: string
                                gmsaCredentialSpecName:
                                  description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                  type: string
                                hostProcess:
                                  description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                    All of a Pod''s containers must have the same effective HostProcess value

                                    (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                    In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                  type: boolean
                                runAsUserName:
                                  description: 'The UserName in Windows to run the entrypoint of the container process.

                                    Defaults to the user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext. If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          description: 'StartupProbe indicates that the Pod has successfully initialized.

                            If specified, no other probes are executed until this completes successfully.

                            If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                            This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                            when it might take a long time to load data or warm a cache, than during steady-state operation.

                            This cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                            is not set, reads from stdin in the container will always result in EOF.

                            Default is false.'
                          type: boolean
                        stdinOnce:
                          description: 'Whether the container runtime should close the stdin channel after it has been opened by

                            a single attach. When stdin is true the stdin stream will remain open across multiple attach

                            sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                            first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                            at which time stdin is closed and remains closed until the container is restarted. If this

                            flag is false, a container processes that reads from stdin will never receive an EOF.

                            Default is false'
                          type: boolean
                        terminationMessagePath:
                          description: 'Optional: Path at which the file to which the container''s termination message

                            will be written is mounted into the container''s filesystem.

                            Message written is intended to be brief final status, such as an assertion failure message.

                            Will be truncated by the node if greater than 4096 bytes. The total message length across

                            all containers will be limited to 12kb.

                            Defaults to /dev/termination-log.

                            Cannot be updated.'
                          type: string
                        terminationMessagePolicy:
                          description: 'Indicate how the termination message should be populated. File will use the contents of

                            terminationMessagePath to populate the container status message on both success and failure.

                            FallbackToLogsOnError will use the last chunk of container log output if the termination

                            message file is empty and the container exited with an error.

                            The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                            Defaults to File.

                            Cannot be updated.'
                          type: string
                        tty:
                          description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                            Default is false.'
                          type: boolean
                        volumeDevices:
                          description: volumeDevices is the list of block devices to be used by the container.
                          items:
                            description: volumeDevice describes a mapping of a raw block device within a container.
                            properties:
                              devicePath:
                                description: devicePath is the path inside of the container that the device will be mapped to.
                                type: string
                              name:
                                description: name must match the name of a persistentVolumeClaim in the pod
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          description: 'Pod volumes to mount into the container''s filesystem.

                            Cannot be updated.'
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          description: 'Container''s working directory.

                            If not specified, the container runtime''s default will be used, which

                            might be configured in the container image.

                            Cannot be updated.'
                          type: string
                      type: object
                    containerSet:
                      description: ContainerSet groups multiple containers within a single pod.
                      properties:
                        containers:
                          items:
                            properties:
                              args:
                                description: 'Arguments to the entrypoint.

                                  The container image''s CMD is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              command:
                                description: 'Entrypoint array. Not executed within a shell.

                                  The container image''s ENTRYPOINT is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              dependencies:
                                items:
                                  type: string
                                type: array
                              env:
                                description: 'List of environment variables to set in the container.

                                  Cannot be updated.'
                                items:
                                  description: EnvVar represents an environment variable present in a Container.
                                  properties:
                                    name:
                                      description: Name of the environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    value:
                                      description: 'Variable references $(VAR_NAME) are expanded

                                        using the previously defined environment variables in the container and

                                        any service environment variables. If a variable cannot be resolved,

                                        the reference in the input string will be unchanged. Double $$ are reduced

                                        to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                        "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                        Escaped references will never be expanded, regardless of whether the variable

                                        exists or not.

                                        Defaults to "".'
                                      type: string
                                    valueFrom:
                                      description: Source for the environment variable's value. Cannot be used if value is not empty.
                                      properties:
                                        configMapKeyRef:
                                          description: Selects a key of a ConfigMap.
                                          properties:
                                            key:
                                              description: The key to select.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the ConfigMap or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        fieldRef:
                                          description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                            spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        secretKeyRef:
                                          description: Selects a key of a secret in the pod's namespace
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              envFrom:
                                description: 'List of sources to populate environment variables in the container.

                                  The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                                  will be reported as an event when the container is starting. When a key exists in multiple

                                  sources, the value associated with the last source will take precedence.

                                  Values defined by an Env with a duplicate key will take precedence.

                                  Cannot be updated.'
                                items:
                                  description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                                  properties:
                                    configMapRef:
                                      description: The ConfigMap to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    prefix:
                                      description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    secretRef:
                                      description: The Secret to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              image:
                                description: 'Container image name.

                                  More info: https://kubernetes.io/docs/concepts/containers/images

                                  This field is optional to allow higher level config management to default or override

                                  container images in workload controllers like Deployments and StatefulSets.'
                                type: string
                              imagePullPolicy:
                                description: 'Image pull policy.

                                  One of Always, Never, IfNotPresent.

                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                                type: string
                              lifecycle:
                                description: 'Actions that the management system should take in response to container lifecycle events.

                                  Cannot be updated.'
                                properties:
                                  postStart:
                                    description: 'PostStart is called immediately after a container is created. If the handler fails,

                                      the container is terminated and restarted according to its restart policy.

                                      Other management of the container blocks until the hook completes.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  preStop:
                                    description: 'PreStop is called immediately before a container is terminated due to an

                                      API request or management event such as liveness/startup probe failure,

                                      preemption, resource contention, etc. The handler is not called if the

                                      container crashes or exits. The Pod''s termination grace period countdown begins before the

                                      PreStop hook is executed. Regardless of the outcome of the handler, the

                                      container will eventually terminate within the Pod''s termination grace

                                      period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                      or until the termination grace period is reached.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  stopSignal:
                                    description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                      If not specified, the default is defined by the container runtime in use.

                                      StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                    type: string
                                type: object
                              livenessProbe:
                                description: 'Periodic probe of container liveness.

                                  Container will be restarted if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              name:
                                description: 'Name of the container specified as a DNS_LABEL.

                                  Each container in a pod must have a unique name (DNS_LABEL).

                                  Cannot be updated.'
                                type: string
                              ports:
                                description: 'List of ports to expose from the container. Not specifying a port here

                                  DOES NOT prevent that port from being exposed. Any port which is

                                  listening on the default "0.0.0.0" address inside a container will be

                                  accessible from the network.

                                  Modifying this array with strategic merge patch may corrupt the data.

                                  For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                                  Cannot be updated.'
                                items:
                                  description: ContainerPort represents a network port in a single container.
                                  properties:
                                    containerPort:
                                      description: 'Number of port to expose on the pod''s IP address.

                                        This must be a valid port number, 0 < x < 65536.'
                                      format: int32
                                      type: integer
                                    hostIP:
                                      description: What host IP to bind the external port to.
                                      type: string
                                    hostPort:
                                      description: 'Number of port to expose on the host.

                                        If specified, this must be a valid port number, 0 < x < 65536.

                                        If HostNetwork is specified, this must match ContainerPort.

                                        Most containers do not need this.'
                                      format: int32
                                      type: integer
                                    name:
                                      description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                        named port in a pod must have a unique name. Name for the port that can be

                                        referred to by services.'
                                      type: string
                                    protocol:
                                      default: TCP
                                      description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                        Defaults to "TCP".'
                                      type: string
                                  required:
                                  - containerPort
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - containerPort
                                - protocol
                                x-kubernetes-list-type: map
                              readinessProbe:
                                description: 'Periodic probe of container service readiness.

                                  Container will be removed from service endpoints if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              resizePolicy:
                                description: Resources resize policy for the container.
                                items:
                                  description: ContainerResizePolicy represents resource resize policy for the container.
                                  properties:
                                    resourceName:
                                      description: 'Name of the resource to which this resource resize policy applies.

                                        Supported values: cpu, memory.'
                                      type: string
                                    restartPolicy:
                                      description: 'Restart policy to apply when specified resource is resized.

                                        If not specified, it defaults to NotRequired.'
                                      type: string
                                  required:
                                  - resourceName
                                  - restartPolicy
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              resources:
                                description: 'Compute Resources required by this container.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                properties:
                                  claims:
                                    description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                      that are used by this container.


                                      This is an alpha field and requires enabling the

                                      DynamicResourceAllocation feature gate.


                                      This field is immutable. It can only be set for containers.'
                                    items:
                                      description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                      properties:
                                        name:
                                          description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                            the Pod where this field is used. It makes that resource available

                                            inside a container.'
                                          type: string
                                        request:
                                          description: 'Request is the name chosen for a request in the referenced claim.

                                            If empty, everything from the claim is made available, otherwise

                                            only the result of this request.'
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - name
                                    x-kubernetes-list-type: map
                                  limits:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Limits describes the maximum amount of compute resources allowed.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                  requests:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Requests describes the minimum amount of compute resources required.

                                      If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                      otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                type: object
                              restartPolicy:
                                description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                                  This field may only be set for init containers, and the only allowed value is "Always".

                                  For non-init containers or when this field is not specified,

                                  the restart behavior is defined by the Pod''s restart policy and the container type.

                                  Setting the RestartPolicy as "Always" for the init container will have the following effect:

                                  this init container will be continually restarted on

                                  exit until all regular containers have terminated. Once all regular

                                  containers have completed, all init containers with restartPolicy "Always"

                                  will be shut down. This lifecycle differs from normal init containers and

                                  is often referred to as a "sidecar" container. Although this init

                                  container still starts in the init container sequence, it does not wait

                                  for the container to complete before proceeding to the next init

                                  container. Instead, the next init container starts immediately after this

                                  init container is started, or after any startupProbe has successfully

                                  completed.'
                                type: string
                              securityContext:
                                description: 'SecurityContext defines the security options the container should be run with.

                                  If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                                  More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                                properties:
                                  allowPrivilegeEscalation:
                                    description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                      privileges than its parent process. This bool directly controls if

                                      the no_new_privs flag will be set on the container process.

                                      AllowPrivilegeEscalation is true always when the container is:

                                      1) run as Privileged

                                      2) has CAP_SYS_ADMIN

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  appArmorProfile:
                                    description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                      overrides the pod''s appArmorProfile.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must match the loaded name of the profile.

                                          Must be set if and only if type is "Localhost".'
                                        type: string
                                      type:
                                        description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  capabilities:
                                    description: 'The capabilities to add/drop when running containers.

                                      Defaults to the default set of capabilities granted by the container runtime.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      add:
                                        description: Added capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      drop:
                                        description: Removed capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  privileged:
                                    description: 'Run container in privileged mode.

                                      Processes in privileged containers are essentially equivalent to root on the host.

                                      Defaults to false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  procMount:
                                    description: 'procMount denotes the type of proc mount to use for the containers.

                                      The default value is Default which uses the container runtime defaults for

                                      readonly paths and masked paths.

                                      This requires the ProcMountType feature flag to be enabled.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: string
                                  readOnlyRootFilesystem:
                                    description: 'Whether this container has a read-only root filesystem.

                                      Default is false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  runAsGroup:
                                    description: 'The GID to run the entrypoint of the container process.

                                      Uses runtime default if unset.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  runAsNonRoot:
                                    description: 'Indicates that the container must run as a non-root user.

                                      If true, the Kubelet will validate the image at runtime to ensure that it

                                      does not run as UID 0 (root) and fail to start the container if it does.

                                      If unset or false, no such validation will be performed.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: boolean
                                  runAsUser:
                                    description: 'The UID to run the entrypoint of the container process.

                                      Defaults to user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  seLinuxOptions:
                                    description: 'The SELinux context to be applied to the container.

                                      If unspecified, the container runtime will allocate a random SELinux context for each

                                      container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      level:
                                        description: Level is SELinux level label that applies to the container.
                                        type: string
                                      role:
                                        description: Role is a SELinux role label that applies to the container.
                                        type: string
                                      type:
                                        description: Type is a SELinux type label that applies to the container.
                                        type: string
                                      user:
                                        description: User is a SELinux user label that applies to the container.
                                        type: string
                                    type: object
                                  seccompProfile:
                                    description: 'The seccomp options to use by this container. If seccomp options are

                                      provided at both the pod & container level, the container options

                                      override the pod options.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                          Must be set if type is "Localhost". Must NOT be set for any other type.'
                                        type: string
                                      type:
                                        description: 'type indicates which kind of seccomp profile will be applied.

                                          Valid options are:


                                          Localhost - a profile defined in a file on the node should be used.

                                          RuntimeDefault - the container runtime default profile should be used.

                                          Unconfined - no profile should be applied.'
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  windowsOptions:
                                    description: 'The Windows specific settings applied to all containers.

                                      If unspecified, the options from the PodSecurityContext will be used.

                                      If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is linux.'
                                    properties:
                                      gmsaCredentialSpec:
                                        description: 'GMSACredentialSpec is where the GMSA admission webhook

                                          (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                          GMSA credential spec named by the GMSACredentialSpecName field.'
                                        type: string
                                      gmsaCredentialSpecName:
                                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                        type: string
                                      hostProcess:
                                        description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                          All of a Pod''s containers must have the same effective HostProcess value

                                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                          In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                        type: boolean
                                      runAsUserName:
                                        description: 'The UserName in Windows to run the entrypoint of the container process.

                                          Defaults to the user specified in image metadata if unspecified.

                                          May also be set in PodSecurityContext. If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                        type: string
                                    type: object
                                type: object
                              startupProbe:
                                description: 'StartupProbe indicates that the Pod has successfully initialized.

                                  If specified, no other probes are executed until this completes successfully.

                                  If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                                  This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                                  when it might take a long time to load data or warm a cache, than during steady-state operation.

                                  This cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              stdin:
                                description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                                  is not set, reads from stdin in the container will always result in EOF.

                                  Default is false.'
                                type: boolean
                              stdinOnce:
                                description: 'Whether the container runtime should close the stdin channel after it has been opened by

                                  a single attach. When stdin is true the stdin stream will remain open across multiple attach

                                  sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                                  first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                                  at which time stdin is closed and remains closed until the container is restarted. If this

                                  flag is false, a container processes that reads from stdin will never receive an EOF.

                                  Default is false'
                                type: boolean
                              terminationMessagePath:
                                description: 'Optional: Path at which the file to which the container''s termination message

                                  will be written is mounted into the container''s filesystem.

                                  Message written is intended to be brief final status, such as an assertion failure message.

                                  Will be truncated by the node if greater than 4096 bytes. The total message length across

                                  all containers will be limited to 12kb.

                                  Defaults to /dev/termination-log.

                                  Cannot be updated.'
                                type: string
                              terminationMessagePolicy:
                                description: 'Indicate how the termination message should be populated. File will use the contents of

                                  terminationMessagePath to populate the container status message on both success and failure.

                                  FallbackToLogsOnError will use the last chunk of container log output if the termination

                                  message file is empty and the container exited with an error.

                                  The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                                  Defaults to File.

                                  Cannot be updated.'
                                type: string
                              tty:
                                description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                                  Default is false.'
                                type: boolean
                              volumeDevices:
                                description: volumeDevices is the list of block devices to be used by the container.
                                items:
                                  description: volumeDevice describes a mapping of a raw block device within a container.
                                  properties:
                                    devicePath:
                                      description: devicePath is the path inside of the container that the device will be mapped to.
                                      type: string
                                    name:
                                      description: name must match the name of a persistentVolumeClaim in the pod
                                      type: string
                                  required:
                                  - devicePath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - devicePath
                                x-kubernetes-list-type: map
                              volumeMounts:
                                description: 'Pod volumes to mount into the container''s filesystem.

                                  Cannot be updated.'
                                items:
                                  description: VolumeMount describes a mounting of a Volume within a container.
                                  properties:
                                    mountPath:
                                      description: 'Path within the container at which the volume should be mounted.  Must

                                        not contain '':''.'
                                      type: string
                                    mountPropagation:
                                      description: 'mountPropagation determines how mounts are propagated from the host

                                        to container and the other way around.

                                        When not set, MountPropagationNone is used.

                                        This field is beta in 1.10.

                                        When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                        (which defaults to None).'
                                      type: string
                                    name:
                                      description: This must match the Name of a Volume.
                                      type: string
                                    readOnly:
                                      description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                        Defaults to false.'
                                      type: boolean
                                    recursiveReadOnly:
                                      description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                        recursively.


                                        If ReadOnly is false, this field has no meaning and must be unspecified.


                                        If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                        recursively read-only.  If this field is set to IfPossible, the mount is made

                                        recursively read-only, if it is supported by the container runtime.  If this

                                        field is set to Enabled, the mount is made recursively read-only if it is

                                        supported by the container runtime, otherwise the pod will not be started and

                                        an error will be generated to indicate the reason.


                                        If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                        None (or be unspecified, which defaults to None).


                                        If this field is not specified, it is treated as an equivalent of Disabled.'
                                      type: string
                                    subPath:
                                      description: 'Path within the volume from which the container''s volume should be mounted.

                                        Defaults to "" (volume''s root).'
                                      type: string
                                    subPathExpr:
                                      description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                        Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                        Defaults to "" (volume''s root).

                                        SubPathExpr and SubPath are mutually exclusive.'
                                      type: string
                                  required:
                                  - mountPath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - mountPath
                                x-kubernetes-list-type: map
                              workingDir:
                                description: 'Container''s working directory.

                                  If not specified, the container runtime''s default will be used, which

                                  might be configured in the container image.

                                  Cannot be updated.'
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        retryStrategy:
                          description: 'RetryStrategy describes how to retry container nodes if the container set fails.

                            Note that this works differently from the template-level `retryStrategy` as it is a process-level retry that does not create new Pods or containers.'
                          properties:
                            duration:
                              description: "Duration is the time between each retry, examples values are \"300ms\", \"1s\" or \"5m\".\nValid time units are \"ns\", \"us\" (or \"\xB5s\"), \"ms\", \"s\", \"m\", \"h\"."
                              type: string
                            retries:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'Retries is the maximum number of retry attempts for each container. It does not include the

                                first, original attempt; the maximum number of total attempts will be `retries + 1`.'
                              x-kubernetes-int-or-string: true
                          required:
                          - retries
                          type: object
                        volumeMounts:
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                      required:
                      - containers
                      type: object
                    daemon:
                      description: Daemon will allow a workflow to proceed to the next step so long as the container reaches readiness
                      type: boolean
                    dag:
                      description: DAG template subtype which runs a DAG
                      properties:
                        failFast:
                          description: 'This flag is for DAG logic. The DAG logic has a built-in "fail fast" feature to stop scheduling new steps,

                            as soon as it detects that one of the DAG nodes is failed. Then it waits until all DAG nodes are completed

                            before failing the DAG itself.

                            The FailFast flag default is true,  if set to false, it will allow a DAG to run all branches of the DAG to

                            completion (either success or failure), regardless of the failed outcomes of branches in the DAG.

                            More info and example about this feature at https://github.com/argoproj/argo-workflows/issues/1442'
                          type: boolean
                        target:
                          description: Target are one or more names of targets to execute in a DAG
                          type: string
                        tasks:
                          description: 'Tasks are a list of DAG tasks

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: 'DAGTask represents a node in the graph during DAG execution

                              Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.'
                            properties:
                              arguments:
                                description: Arguments are the parameter and artifact arguments to the template
                                properties:
                                  artifacts:
                                    description: Artifacts is the list of artifacts to pass to the template or workflow
                                    items:
                                      description: Artifact indicates an artifact to place at a specified path
                                      properties:
                                        archive:
                                          description: Archive controls how the artifact will be saved to the artifact repository.
                                          properties:
                                            none:
                                              description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                save/load the directory appropriately.'
                                              type: object
                                            tar:
                                              description: TarStrategy will tar and gzip the file or directory when saving
                                              properties:
                                                compressionLevel:
                                                  description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                    Defaults to gzip.DefaultCompression.'
                                                  format: int32
                                                  type: integer
                                              type: object
                                            zip:
                                              description: ZipStrategy will unzip zipped input artifacts
                                              type: object
                                          type: object
                                        archiveLogs:
                                          description: ArchiveLogs indicates if the container logs should be archived
                                          type: boolean
                                        artifactGC:
                                          description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                          properties:
                                            podMetadata:
                                              description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            serviceAccountName:
                                              description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                              type: string
                                            strategy:
                                              description: Strategy is the strategy to use.
                                              enum:
                                              - ''
                                              - OnWorkflowCompletion
                                              - OnWorkflowDeletion
                                              - Never
                                              type: string
                                          type: object
                                        artifactory:
                                          description: Artifactory contains artifactory artifact location details
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            url:
                                              description: URL of the artifact
                                              type: string
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - url
                                          type: object
                                        azure:
                                          description: Azure contains Azure Storage artifact location details
                                          properties:
                                            accountKeySecret:
                                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            blob:
                                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                              type: string
                                            container:
                                              description: Container is the container where resources will be stored
                                              type: string
                                            endpoint:
                                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                              type: string
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          required:
                                          - blob
                                          - container
                                          - endpoint
                                          type: object
                                        deleted:
                                          description: Has this been deleted?
                                          type: boolean
                                        from:
                                          description: From allows an artifact to reference an artifact from a previous step
                                          type: string
                                        fromExpression:
                                          description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                          type: string
                                        gcs:
                                          description: GCS contains GCS artifact location details
                                          properties:
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            key:
                                              description: Key is the path in the bucket where the artifact resides
                                              type: string
                                            serviceAccountKeySecret:
                                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - key
                                          type: object
                                        git:
                                          description: Git contains git artifact location details
                                          properties:
                                            branch:
                                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                                              type: string
                                            depth:
                                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                                number of commits from the branch tip'
                                              format: int64
                                              type: integer
                                            disableSubmodules:
                                              description: DisableSubmodules disables submodules during git clone
                                              type: boolean
                                            fetch:
                                              description: Fetch specifies a number of refs that should be fetched before checkout
                                              items:
                                                type: string
                                              type: array
                                            insecureIgnoreHostKey:
                                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                              type: boolean
                                            insecureSkipTLS:
                                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                              type: boolean
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            repo:
                                              description: Repo is the git repository
                                              type: string
                                            revision:
                                              description: Revision is the git commit, tag, branch to checkout
                                              type: string
                                            singleBranch:
                                              description: SingleBranch enables single branch clone, using the `branch` parameter
                                              type: boolean
                                            sshPrivateKeySecret:
                                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - repo
                                          type: object
                                        globalName:
                                          description: 'GlobalName exports an output artifact to the global scope, making it available as

                                            ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                          type: string
                                        hdfs:
                                          description: HDFS contains HDFS artifact location details
                                          properties:
                                            addresses:
                                              description: Addresses is accessible addresses of HDFS name nodes
                                              items:
                                                type: string
                                              type: array
                                            dataTransferProtection:
                                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                              type: string
                                            force:
                                              description: Force copies a file forcibly even if it exists
                                              type: boolean
                                            hdfsUser:
                                              description: 'HDFSUser is the user to access HDFS file system.

                                                It is ignored if either ccache or keytab is used.'
                                              type: string
                                            krbCCacheSecret:
                                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                Either ccache or keytab can be set to use Kerberos.'
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbConfigConfigMap:
                                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                It must be set if either ccache or keytab is used.'
                                              properties:
                                                key:
                                                  description: The key to select.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the ConfigMap or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbKeytabSecret:
                                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                Either ccache or keytab can be set to use Kerberos.'
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbRealm:
                                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                It must be set if keytab is used.'
                                              type: string
                                            krbServicePrincipalName:
                                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                It must be set if either ccache or keytab is used.'
                                              type: string
                                            krbUsername:
                                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                It must be set if keytab is used.'
                                              type: string
                                            path:
                                              description: Path is a file path in HDFS
                                              type: string
                                          required:
                                          - path
                                          type: object
                                        http:
                                          description: HTTP contains HTTP artifact location details
                                          properties:
                                            auth:
                                              description: Auth contains information for client authentication
                                              properties:
                                                basicAuth:
                                                  description: BasicAuth describes the secret selectors required for basic authentication
                                                  properties:
                                                    passwordSecret:
                                                      description: PasswordSecret is the secret selector to the repository password
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    usernameSecret:
                                                      description: UsernameSecret is the secret selector to the repository username
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                clientCert:
                                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                                  properties:
                                                    clientCertSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientKeySecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                oauth2:
                                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                  properties:
                                                    clientIDSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientSecretSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    endpointParams:
                                                      items:
                                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                        properties:
                                                          key:
                                                            description: Name is the header name
                                                            type: string
                                                          value:
                                                            description: Value is the literal value to use for the header
                                                            type: string
                                                        required:
                                                        - key
                                                        type: object
                                                      type: array
                                                    scopes:
                                                      items:
                                                        type: string
                                                      type: array
                                                    tokenURLSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                              type: object
                                            headers:
                                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                              items:
                                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                properties:
                                                  name:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - name
                                                - value
                                                type: object
                                              type: array
                                            url:
                                              description: URL of the artifact
                                              type: string
                                          required:
                                          - url
                                          type: object
                                        mode:
                                          description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                            Set when loading input artifacts. It is recommended to set the mode value

                                            to ensure the artifact has the expected permissions in your container.'
                                          format: int32
                                          maximum: 511
                                          minimum: 0
                                          type: integer
                                        name:
                                          description: name of the artifact. must be unique within a template's inputs/outputs.
                                          pattern: ^[-a-zA-Z0-9_{}.]+$
                                          type: string
                                        optional:
                                          description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                          type: boolean
                                        oss:
                                          description: OSS contains OSS artifact location details
                                          properties:
                                            accessKeySecret:
                                              description: AccessKeySecret is the secret selector to the bucket's access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            createBucketIfNotPresent:
                                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                              type: boolean
                                            endpoint:
                                              description: Endpoint is the hostname of the bucket endpoint
                                              type: string
                                            key:
                                              description: Key is the path in the bucket where the artifact resides
                                              type: string
                                            lifecycleRule:
                                              description: LifecycleRule specifies how to manage bucket's lifecycle
                                              properties:
                                                markDeletionAfterDays:
                                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                  format: int32
                                                  type: integer
                                                markInfrequentAccessAfterDays:
                                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                  format: int32
                                                  type: integer
                                              type: object
                                            secretKeySecret:
                                              description: SecretKeySecret is the secret selector to the bucket's secret key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            securityToken:
                                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                              type: string
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                        path:
                                          description: Path is the container path to the artifact
                                          type: string
                                        plugin:
                                          description: Plugin contains plugin artifact location details
                                          properties:
                                            configuration:
                                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                                              type: string
                                            connectionTimeoutSeconds:
                                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                              format: int32
                                              type: integer
                                            key:
                                              description: Key is the path in the artifact repository where the artifact resides
                                              type: string
                                            name:
                                              description: Name is the name of the artifact driver plugin
                                              type: string
                                          required:
                                          - key
                                          type: object
                                        raw:
                                          description: Raw contains raw artifact location details
                                          properties:
                                            data:
                                              description: Data is the string contents of the artifact
                                              type: string
                                          required:
                                          - data
                                          type: object
                                        recurseMode:
                                          description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                          type: boolean
                                        s3:
                                          description: S3 contains S3 artifact location details
                                          properties:
                                            accessKeySecret:
                                              description: AccessKeySecret is the secret selector to the bucket's access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            caSecret:
                                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            createBucketIfNotPresent:
                                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                              properties:
                                                objectLocking:
                                                  description: ObjectLocking Enable object locking
                                                  type: boolean
                                              type: object
                                            encryptionOptions:
                                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                                              properties:
                                                enableEncryption:
                                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                  type: boolean
                                                kmsEncryptionContext:
                                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                  type: string
                                                kmsKeyId:
                                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                  type: string
                                                serverSideCustomerKeySecret:
                                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            endpoint:
                                              description: Endpoint is the hostname of the bucket endpoint
                                              type: string
                                            insecure:
                                              description: Insecure will connect to the service with TLS
                                              type: boolean
                                            key:
                                              description: Key is the key in the bucket where the artifact resides
                                              type: string
                                            region:
                                              description: Region contains the optional bucket region
                                              type: string
                                            roleARN:
                                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                              type: string
                                            secretKeySecret:
                                              description: SecretKeySecret is the secret selector to the bucket's secret key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            sessionTokenSecret:
                                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          type: object
                                        subPath:
                                          description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                          type: string
                                      required:
                                      - name
                                      type: object
                                      x-kubernetes-validations:
                                      - message: at most one artifact location can be specified
                                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                    type: array
                                  parameters:
                                    description: Parameters is the list of parameters to pass to the template or workflow
                                    items:
                                      description: Parameter indicate a passed string parameter to a service template with an optional default value
                                      properties:
                                        default:
                                          description: Default is the default value to use for an input parameter if a value was not supplied
                                          type: string
                                        description:
                                          description: Description is the parameter description
                                          type: string
                                        enum:
                                          description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                          items:
                                            description: '* It''s JSON type is just string.

                                              * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                              * It will marshall back to string - marshalling is not symmetric.'
                                            type: string
                                          minItems: 1
                                          type: array
                                        globalName:
                                          description: 'GlobalName exports an output parameter to the global scope, making it available as

                                            ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                          type: string
                                        name:
                                          description: Name is the parameter name
                                          pattern: ^[-a-zA-Z0-9_]+$
                                          type: string
                                        value:
                                          description: 'Value is the literal value to use for the parameter.

                                            If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                          type: string
                                        valueFrom:
                                          description: ValueFrom is the source for the output parameter's value
                                          properties:
                                            configMapKeyRef:
                                              description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                              properties:
                                                key:
                                                  description: The key to select.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the ConfigMap or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            default:
                                              description: Default specifies a value to be used if retrieving the value from the specified source fails
                                              type: string
                                            event:
                                              description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                              type: string
                                            expression:
                                              description: Expression, if defined, is evaluated to specify the value for the parameter
                                              type: string
                                            jqFilter:
                                              description: JQFilter expression against the resource object in resource templates
                                              type: string
                                            jsonPath:
                                              description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                              type: string
                                            parameter:
                                              description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                              type: string
                                            path:
                                              description: Path in the container to retrieve an output parameter value from in container templates
                                              type: string
                                            supplied:
                                              description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                              type: object
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                type: object
                              continueOn:
                                description: 'ContinueOn makes argo to proceed with the following step even if this step fails.

                                  Errors and Failed states can be specified'
                                properties:
                                  error:
                                    type: boolean
                                  failed:
                                    type: boolean
                                type: object
                              dependencies:
                                description: Dependencies are name of other targets which this depends on
                                items:
                                  type: string
                                type: array
                              depends:
                                description: Depends are name of other targets which this depends on
                                type: string
                              hooks:
                                additionalProperties:
                                  properties:
                                    arguments:
                                      description: Arguments hold arguments to the template
                                      properties:
                                        artifacts:
                                          description: Artifacts is the list of artifacts to pass to the template or workflow
                                          items:
                                            description: Artifact indicates an artifact to place at a specified path
                                            properties:
                                              archive:
                                                description: Archive controls how the artifact will be saved to the artifact repository.
                                                properties:
                                                  none:
                                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                      save/load the directory appropriately.'
                                                    type: object
                                                  tar:
                                                    description: TarStrategy will tar and gzip the file or directory when saving
                                                    properties:
                                                      compressionLevel:
                                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                          Defaults to gzip.DefaultCompression.'
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  zip:
                                                    description: ZipStrategy will unzip zipped input artifacts
                                                    type: object
                                                type: object
                                              archiveLogs:
                                                description: ArchiveLogs indicates if the container logs should be archived
                                                type: boolean
                                              artifactGC:
                                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                                properties:
                                                  podMetadata:
                                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                    properties:
                                                      annotations:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                      labels:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                    type: object
                                                  serviceAccountName:
                                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                    type: string
                                                  strategy:
                                                    description: Strategy is the strategy to use.
                                                    enum:
                                                    - ''
                                                    - OnWorkflowCompletion
                                                    - OnWorkflowDeletion
                                                    - Never
                                                    type: string
                                                type: object
                                              artifactory:
                                                description: Artifactory contains artifactory artifact location details
                                                properties:
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  url:
                                                    description: URL of the artifact
                                                    type: string
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - url
                                                type: object
                                              azure:
                                                description: Azure contains Azure Storage artifact location details
                                                properties:
                                                  accountKeySecret:
                                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  blob:
                                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                    type: string
                                                  container:
                                                    description: Container is the container where resources will be stored
                                                    type: string
                                                  endpoint:
                                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                    type: string
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                required:
                                                - blob
                                                - container
                                                - endpoint
                                                type: object
                                              deleted:
                                                description: Has this been deleted?
                                                type: boolean
                                              from:
                                                description: From allows an artifact to reference an artifact from a previous step
                                                type: string
                                              fromExpression:
                                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                                type: string
                                              gcs:
                                                description: GCS contains GCS artifact location details
                                                properties:
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  key:
                                                    description: Key is the path in the bucket where the artifact resides
                                                    type: string
                                                  serviceAccountKeySecret:
                                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - key
                                                type: object
                                              git:
                                                description: Git contains git artifact location details
                                                properties:
                                                  branch:
                                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                    type: string
                                                  depth:
                                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                                      number of commits from the branch tip'
                                                    format: int64
                                                    type: integer
                                                  disableSubmodules:
                                                    description: DisableSubmodules disables submodules during git clone
                                                    type: boolean
                                                  fetch:
                                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                                    items:
                                                      type: string
                                                    type: array
                                                  insecureIgnoreHostKey:
                                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                    type: boolean
                                                  insecureSkipTLS:
                                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                    type: boolean
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  repo:
                                                    description: Repo is the git repository
                                                    type: string
                                                  revision:
                                                    description: Revision is the git commit, tag, branch to checkout
                                                    type: string
                                                  singleBranch:
                                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                                    type: boolean
                                                  sshPrivateKeySecret:
                                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - repo
                                                type: object
                                              globalName:
                                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                                type: string
                                              hdfs:
                                                description: HDFS contains HDFS artifact location details
                                                properties:
                                                  addresses:
                                                    description: Addresses is accessible addresses of HDFS name nodes
                                                    items:
                                                      type: string
                                                    type: array
                                                  dataTransferProtection:
                                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                    type: string
                                                  force:
                                                    description: Force copies a file forcibly even if it exists
                                                    type: boolean
                                                  hdfsUser:
                                                    description: 'HDFSUser is the user to access HDFS file system.

                                                      It is ignored if either ccache or keytab is used.'
                                                    type: string
                                                  krbCCacheSecret:
                                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                      Either ccache or keytab can be set to use Kerberos.'
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbConfigConfigMap:
                                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                      It must be set if either ccache or keytab is used.'
                                                    properties:
                                                      key:
                                                        description: The key to select.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the ConfigMap or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbKeytabSecret:
                                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                      Either ccache or keytab can be set to use Kerberos.'
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbRealm:
                                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                      It must be set if keytab is used.'
                                                    type: string
                                                  krbServicePrincipalName:
                                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                      It must be set if either ccache or keytab is used.'
                                                    type: string
                                                  krbUsername:
                                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                      It must be set if keytab is used.'
                                                    type: string
                                                  path:
                                                    description: Path is a file path in HDFS
                                                    type: string
                                                required:
                                                - path
                                                type: object
                                              http:
                                                description: HTTP contains HTTP artifact location details
                                                properties:
                                                  auth:
                                                    description: Auth contains information for client authentication
                                                    properties:
                                                      basicAuth:
                                                        description: BasicAuth describes the secret selectors required for basic authentication
                                                        properties:
                                                          passwordSecret:
                                                            description: PasswordSecret is the secret selector to the repository password
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          usernameSecret:
                                                            description: UsernameSecret is the secret selector to the repository username
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      clientCert:
                                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                                        properties:
                                                          clientCertSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientKeySecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      oauth2:
                                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                        properties:
                                                          clientIDSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientSecretSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          endpointParams:
                                                            items:
                                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                              properties:
                                                                key:
                                                                  description: Name is the header name
                                                                  type: string
                                                                value:
                                                                  description: Value is the literal value to use for the header
                                                                  type: string
                                                              required:
                                                              - key
                                                              type: object
                                                            type: array
                                                          scopes:
                                                            items:
                                                              type: string
                                                            type: array
                                                          tokenURLSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                    type: object
                                                  headers:
                                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                    items:
                                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                      properties:
                                                        name:
                                                          description: Name is the header name
                                                          type: string
                                                        value:
                                                          description: Value is the literal value to use for the header
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  url:
                                                    description: URL of the artifact
                                                    type: string
                                                required:
                                                - url
                                                type: object
                                              mode:
                                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                  Set when loading input artifacts. It is recommended to set the mode value

                                                  to ensure the artifact has the expected permissions in your container.'
                                                format: int32
                                                maximum: 511
                                                minimum: 0
                                                type: integer
                                              name:
                                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                                type: string
                                              optional:
                                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                                type: boolean
                                              oss:
                                                description: OSS contains OSS artifact location details
                                                properties:
                                                  accessKeySecret:
                                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  createBucketIfNotPresent:
                                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                    type: boolean
                                                  endpoint:
                                                    description: Endpoint is the hostname of the bucket endpoint
                                                    type: string
                                                  key:
                                                    description: Key is the path in the bucket where the artifact resides
                                                    type: string
                                                  lifecycleRule:
                                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                                    properties:
                                                      markDeletionAfterDays:
                                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                        format: int32
                                                        type: integer
                                                      markInfrequentAccessAfterDays:
                                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  secretKeySecret:
                                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  securityToken:
                                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                    type: string
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                              path:
                                                description: Path is the container path to the artifact
                                                type: string
                                              plugin:
                                                description: Plugin contains plugin artifact location details
                                                properties:
                                                  configuration:
                                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                    type: string
                                                  connectionTimeoutSeconds:
                                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                    format: int32
                                                    type: integer
                                                  key:
                                                    description: Key is the path in the artifact repository where the artifact resides
                                                    type: string
                                                  name:
                                                    description: Name is the name of the artifact driver plugin
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              raw:
                                                description: Raw contains raw artifact location details
                                                properties:
                                                  data:
                                                    description: Data is the string contents of the artifact
                                                    type: string
                                                required:
                                                - data
                                                type: object
                                              recurseMode:
                                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                                type: boolean
                                              s3:
                                                description: S3 contains S3 artifact location details
                                                properties:
                                                  accessKeySecret:
                                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  caSecret:
                                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  createBucketIfNotPresent:
                                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                    properties:
                                                      objectLocking:
                                                        description: ObjectLocking Enable object locking
                                                        type: boolean
                                                    type: object
                                                  encryptionOptions:
                                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                    properties:
                                                      enableEncryption:
                                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                        type: boolean
                                                      kmsEncryptionContext:
                                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                        type: string
                                                      kmsKeyId:
                                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                        type: string
                                                      serverSideCustomerKeySecret:
                                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  endpoint:
                                                    description: Endpoint is the hostname of the bucket endpoint
                                                    type: string
                                                  insecure:
                                                    description: Insecure will connect to the service with TLS
                                                    type: boolean
                                                  key:
                                                    description: Key is the key in the bucket where the artifact resides
                                                    type: string
                                                  region:
                                                    description: Region contains the optional bucket region
                                                    type: string
                                                  roleARN:
                                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                    type: string
                                                  secretKeySecret:
                                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  sessionTokenSecret:
                                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                type: object
                                              subPath:
                                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                                type: string
                                            required:
                                            - name
                                            type: object
                                            x-kubernetes-validations:
                                            - message: at most one artifact location can be specified
                                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                          type: array
                                        parameters:
                                          description: Parameters is the list of parameters to pass to the template or workflow
                                          items:
                                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                                            properties:
                                              default:
                                                description: Default is the default value to use for an input parameter if a value was not supplied
                                                type: string
                                              description:
                                                description: Description is the parameter description
                                                type: string
                                              enum:
                                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                                items:
                                                  description: '* It''s JSON type is just string.

                                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                    * It will marshall back to string - marshalling is not symmetric.'
                                                  type: string
                                                minItems: 1
                                                type: array
                                              globalName:
                                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                                type: string
                                              name:
                                                description: Name is the parameter name
                                                pattern: ^[-a-zA-Z0-9_]+$
                                                type: string
                                              value:
                                                description: 'Value is the literal value to use for the parameter.

                                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                                type: string
                                              valueFrom:
                                                description: ValueFrom is the source for the output parameter's value
                                                properties:
                                                  configMapKeyRef:
                                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                    properties:
                                                      key:
                                                        description: The key to select.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the ConfigMap or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  default:
                                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                    type: string
                                                  event:
                                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                    type: string
                                                  expression:
                                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                                    type: string
                                                  jqFilter:
                                                    description: JQFilter expression against the resource object in resource templates
                                                    type: string
                                                  jsonPath:
                                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                    type: string
                                                  parameter:
                                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                    type: string
                                                  path:
                                                    description: Path in the container to retrieve an output parameter value from in container templates
                                                    type: string
                                                  supplied:
                                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                    type: object
                                                type: object
                                            required:
                                            - name
                                            type: object
                                          type: array
                                      type: object
                                    expression:
                                      description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                        be retried and the retry strategy will be ignored'
                                      type: string
                                    template:
                                      description: Template is the name of the template to execute by the hook
                                      type: string
                                    templateRef:
                                      description: TemplateRef is the reference to the template resource to execute by the hook
                                      properties:
                                        clusterScope:
                                          description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                          type: boolean
                                        name:
                                          description: Name is the resource name of the template.
                                          type: string
                                        template:
                                          description: Template is the name of referred template in the resource.
                                          type: string
                                      type: object
                                  type: object
                                description: 'Hooks hold the lifecycle hook which is invoked at lifecycle of

                                  task, irrespective of the success, failure, or error status of the primary task'
                                type: object
                              inline:
                                description: 'Inline is the template. Template must be empty if this is declared (and vice-versa).

                                  Note: As mentioned in the corresponding definition in WorkflowStep, this struct is defined recursively,

                                  so we need "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                x-kubernetes-preserve-unknown-fields: true
                              name:
                                description: Name is the name of the target
                                maxLength: 128
                                pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                type: string
                              onExit:
                                description: 'OnExit is a template reference which is invoked at the end of the

                                  template, irrespective of the success, failure, or error of the

                                  primary template.

                                  DEPRECATED: Use Hooks[exit].Template instead.'
                                type: string
                              template:
                                description: Name of template to execute
                                type: string
                              templateRef:
                                description: TemplateRef is the reference to the template resource to execute.
                                properties:
                                  clusterScope:
                                    description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                    type: boolean
                                  name:
                                    description: Name is the resource name of the template.
                                    type: string
                                  template:
                                    description: Template is the name of referred template in the resource.
                                    type: string
                                type: object
                              when:
                                description: When is an expression in which the task should conditionally execute
                                type: string
                              withItems:
                                description: 'WithItems expands a task into multiple parallel tasks from the items in the list

                                  Note: The structure of WithItems is free-form, so we need

                                  "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                x-kubernetes-preserve-unknown-fields: true
                              withParam:
                                description: 'WithParam expands a task into multiple parallel tasks from the value in the parameter,

                                  which is expected to be a JSON list.'
                                type: string
                              withSequence:
                                description: WithSequence expands a task into a numeric sequence
                                properties:
                                  count:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Count is number of elements in the sequence (default: 0). Not to be used with end'
                                    x-kubernetes-int-or-string: true
                                  end:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number at which to end the sequence (default: 0). Not to be used with Count'
                                    x-kubernetes-int-or-string: true
                                  format:
                                    description: Format is a printf format string to format the value in the sequence
                                    type: string
                                  start:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number at which to start the sequence (default: 0)'
                                    x-kubernetes-int-or-string: true
                                type: object
                                x-kubernetes-validations:
                                - message: only one of count or end can be defined
                                  rule: '!(has(self.count) && has(self.end))'
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: cannot use both 'depends' and 'dependencies'
                              rule: '!has(self.depends) || !has(self.dependencies)'
                            - message: cannot use 'continueOn' when using 'depends'
                              rule: '!has(self.depends) || !has(self.continueOn)'
                            - message: task name cannot begin with a digit when using 'depends' or 'dependencies'
                              rule: '!(has(self.depends) || has(self.dependencies)) || !self.name.matches(''^[0-9]'')'
                          maxItems: 200
                          minItems: 1
                          type: array
                      required:
                      - tasks
                      type: object
                    data:
                      description: Data is a data template
                      properties:
                        source:
                          description: Source sources external data into a data template
                          properties:
                            artifactPaths:
                              description: ArtifactPaths is a data transformation that collects a list of artifact paths
                              properties:
                                archive:
                                  description: Archive controls how the artifact will be saved to the artifact repository.
                                  properties:
                                    none:
                                      description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                        files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                        save/load the directory appropriately.'
                                      type: object
                                    tar:
                                      description: TarStrategy will tar and gzip the file or directory when saving
                                      properties:
                                        compressionLevel:
                                          description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                            Defaults to gzip.DefaultCompression.'
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      description: ZipStrategy will unzip zipped input artifacts
                                      type: object
                                  type: object
                                archiveLogs:
                                  description: ArchiveLogs indicates if the container logs should be archived
                                  type: boolean
                                artifactGC:
                                  description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                  properties:
                                    podMetadata:
                                      description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                      type: string
                                    strategy:
                                      description: Strategy is the strategy to use.
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  description: Artifactory contains artifactory artifact location details
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      description: URL of the artifact
                                      type: string
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  description: Azure contains Azure Storage artifact location details
                                  properties:
                                    accountKeySecret:
                                      description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                      type: string
                                    container:
                                      description: Container is the container where resources will be stored
                                      type: string
                                    endpoint:
                                      description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  description: Has this been deleted?
                                  type: boolean
                                from:
                                  description: From allows an artifact to reference an artifact from a previous step
                                  type: string
                                fromExpression:
                                  description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                  type: string
                                gcs:
                                  description: GCS contains GCS artifact location details
                                  properties:
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    serviceAccountKeySecret:
                                      description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  description: Git contains git artifact location details
                                  properties:
                                    branch:
                                      description: Branch is the branch to fetch when `SingleBranch` is enabled
                                      type: string
                                    depth:
                                      description: 'Depth specifies clones/fetches should be shallow and include the given

                                        number of commits from the branch tip'
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      description: DisableSubmodules disables submodules during git clone
                                      type: boolean
                                    fetch:
                                      description: Fetch specifies a number of refs that should be fetched before checkout
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                      type: boolean
                                    insecureSkipTLS:
                                      description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                      type: boolean
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      description: Repo is the git repository
                                      type: string
                                    revision:
                                      description: Revision is the git commit, tag, branch to checkout
                                      type: string
                                    singleBranch:
                                      description: SingleBranch enables single branch clone, using the `branch` parameter
                                      type: boolean
                                    sshPrivateKeySecret:
                                      description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  description: 'GlobalName exports an output artifact to the global scope, making it available as

                                    ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                  type: string
                                hdfs:
                                  description: HDFS contains HDFS artifact location details
                                  properties:
                                    addresses:
                                      description: Addresses is accessible addresses of HDFS name nodes
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                        It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                      type: string
                                    force:
                                      description: Force copies a file forcibly even if it exists
                                      type: boolean
                                    hdfsUser:
                                      description: 'HDFSUser is the user to access HDFS file system.

                                        It is ignored if either ccache or keytab is used.'
                                      type: string
                                    krbCCacheSecret:
                                      description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      description: 'KrbConfig is the configmap selector for Kerberos config as string

                                        It must be set if either ccache or keytab is used.'
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    krbServicePrincipalName:
                                      description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                        It must be set if either ccache or keytab is used.'
                                      type: string
                                    krbUsername:
                                      description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    path:
                                      description: Path is a file path in HDFS
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  description: HTTP contains HTTP artifact location details
                                  properties:
                                    auth:
                                      description: Auth contains information for client authentication
                                      properties:
                                        basicAuth:
                                          description: BasicAuth describes the secret selectors required for basic authentication
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          description: ClientCertAuth holds necessary information for client authentication via certificates
                                          properties:
                                            clientCertSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                          properties:
                                            clientIDSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                properties:
                                                  key:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                      items:
                                        description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                        properties:
                                          name:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      description: URL of the artifact
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                    Set when loading input artifacts. It is recommended to set the mode value

                                    to ensure the artifact has the expected permissions in your container.'
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  description: name of the artifact. must be unique within a template's inputs/outputs.
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                  type: boolean
                                oss:
                                  description: OSS contains OSS artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                      type: boolean
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    lifecycleRule:
                                      description: LifecycleRule specifies how to manage bucket's lifecycle
                                      properties:
                                        markDeletionAfterDays:
                                          description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  description: Path is the container path to the artifact
                                  type: string
                                plugin:
                                  description: Plugin contains plugin artifact location details
                                  properties:
                                    configuration:
                                      description: Configuration is the plugin defined configuration for the artifact driver plugin
                                      type: string
                                    connectionTimeoutSeconds:
                                      description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                      format: int32
                                      type: integer
                                    key:
                                      description: Key is the path in the artifact repository where the artifact resides
                                      type: string
                                    name:
                                      description: Name is the name of the artifact driver plugin
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  description: Raw contains raw artifact location details
                                  properties:
                                    data:
                                      description: Data is the string contents of the artifact
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                  type: boolean
                                s3:
                                  description: S3 contains S3 artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    caSecret:
                                      description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                      properties:
                                        objectLocking:
                                          description: ObjectLocking Enable object locking
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      description: S3EncryptionOptions used to determine encryption options during s3 operations
                                      properties:
                                        enableEncryption:
                                          description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                          type: boolean
                                        kmsEncryptionContext:
                                          description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                          type: string
                                        kmsKeyId:
                                          description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                          type: string
                                        serverSideCustomerKeySecret:
                                          description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    insecure:
                                      description: Insecure will connect to the service with TLS
                                      type: boolean
                                    key:
                                      description: Key is the key in the bucket where the artifact resides
                                      type: string
                                    region:
                                      description: Region contains the optional bucket region
                                      type: string
                                    roleARN:
                                      description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                      type: string
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  type: object
                                subPath:
                                  description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                  type: string
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: at most one artifact location can be specified
                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: object
                        transformation:
                          description: Transformation applies a set of transformations
                          items:
                            properties:
                              expression:
                                description: Expression defines an expr expression to apply
                                type: string
                            required:
                            - expression
                            type: object
                          type: array
                      required:
                      - source
                      - transformation
                      type: object
                    executor:
                      description: Executor holds configurations of the executor container.
                      properties:
                        serviceAccountName:
                          description: ServiceAccountName specifies the service account name of the executor container.
                          type: string
                      type: object
                    failFast:
                      description: 'FailFast, if specified, will fail this template if any of its child pods has failed. This is useful for when this

                        template is expanded with `withItems`, etc.'
                      type: boolean
                    hostAliases:
                      description: HostAliases is an optional list of hosts and IPs that will be injected into the pod spec
                      items:
                        description: 'HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the

                          pod''s hosts file.'
                        properties:
                          hostnames:
                            description: Hostnames for the above IP address.
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          ip:
                            description: IP address of the host file entry.
                            type: string
                        required:
                        - ip
                        type: object
                      type: array
                    http:
                      description: HTTP makes a HTTP request
                      properties:
                        body:
                          description: Body is content of the HTTP Request
                          type: string
                        bodyFrom:
                          description: BodyFrom is  content of the HTTP Request as Bytes
                          properties:
                            bytes:
                              format: byte
                              type: string
                          type: object
                        headers:
                          description: Headers are an optional list of headers to send with HTTP requests
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  secretKeyRef:
                                    description: SecretKeySelector selects a key of a Secret.
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        insecureSkipVerify:
                          description: InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client
                          type: boolean
                        method:
                          description: Method is HTTP methods for HTTP Request
                          type: string
                        successCondition:
                          description: SuccessCondition is an expression if evaluated to true is considered successful
                          type: string
                        timeoutSeconds:
                          description: TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds
                          format: int64
                          type: integer
                        url:
                          description: URL of the HTTP Request
                          type: string
                      required:
                      - url
                      type: object
                    initContainers:
                      description: InitContainers is a list of containers which run before the main container.
                      items:
                        description: UserContainer is a container specified by a user.
                        properties:
                          args:
                            description: 'Arguments to the entrypoint.

                              The container image''s CMD is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            description: 'Entrypoint array. Not executed within a shell.

                              The container image''s ENTRYPOINT is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            description: 'List of environment variables to set in the container.

                              Cannot be updated.'
                            items:
                              description: EnvVar represents an environment variable present in a Container.
                              properties:
                                name:
                                  description: Name of the environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                value:
                                  description: 'Variable references $(VAR_NAME) are expanded

                                    using the previously defined environment variables in the container and

                                    any service environment variables. If a variable cannot be resolved,

                                    the reference in the input string will be unchanged. Double $$ are reduced

                                    to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                    "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                    Escaped references will never be expanded, regardless of whether the variable

                                    exists or not.

                                    Defaults to "".'
                                  type: string
                                valueFrom:
                                  description: Source for the environment variable's value. Cannot be used if value is not empty.
                                  properties:
                                    configMapKeyRef:
                                      description: Selects a key of a ConfigMap.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                        spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      description: Selects a key of a secret in the pod's namespace
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            description: 'List of sources to populate environment variables in the container.

                              The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                              will be reported as an event when the container is starting. When a key exists in multiple

                              sources, the value associated with the last source will take precedence.

                              Values defined by an Env with a duplicate key will take precedence.

                              Cannot be updated.'
                            items:
                              description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                              properties:
                                configMapRef:
                                  description: The ConfigMap to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                secretRef:
                                  description: The Secret to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            description: 'Container image name.

                              More info: https://kubernetes.io/docs/concepts/containers/images

                              This field is optional to allow higher level config management to default or override

                              container images in workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy.

                              One of Always, Never, IfNotPresent.

                              Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          lifecycle:
                            description: 'Actions that the management system should take in response to container lifecycle events.

                              Cannot be updated.'
                            properties:
                              postStart:
                                description: 'PostStart is called immediately after a container is created. If the handler fails,

                                  the container is terminated and restarted according to its restart policy.

                                  Other management of the container blocks until the hook completes.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                description: 'PreStop is called immediately before a container is terminated due to an

                                  API request or management event such as liveness/startup probe failure,

                                  preemption, resource contention, etc. The handler is not called if the

                                  container crashes or exits. The Pod''s termination grace period countdown begins before the

                                  PreStop hook is executed. Regardless of the outcome of the handler, the

                                  container will eventually terminate within the Pod''s termination grace

                                  period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                  or until the termination grace period is reached.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                  If not specified, the default is defined by the container runtime in use.

                                  StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                type: string
                            type: object
                          livenessProbe:
                            description: 'Periodic probe of container liveness.

                              Container will be restarted if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          mirrorVolumeMounts:
                            description: 'MirrorVolumeMounts will mount the same volumes specified in the main container

                              to the container (including artifacts), at the same mountPaths. This enables

                              dind daemon to partially see the same filesystem as the main container in

                              order to use features such as docker volume binding'
                            type: boolean
                          name:
                            description: 'Name of the container specified as a DNS_LABEL.

                              Each container in a pod must have a unique name (DNS_LABEL).

                              Cannot be updated.'
                            type: string
                          ports:
                            description: 'List of ports to expose from the container. Not specifying a port here

                              DOES NOT prevent that port from being exposed. Any port which is

                              listening on the default "0.0.0.0" address inside a container will be

                              accessible from the network.

                              Modifying this array with strategic merge patch may corrupt the data.

                              For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                              Cannot be updated.'
                            items:
                              description: ContainerPort represents a network port in a single container.
                              properties:
                                containerPort:
                                  description: 'Number of port to expose on the pod''s IP address.

                                    This must be a valid port number, 0 < x < 65536.'
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port to.
                                  type: string
                                hostPort:
                                  description: 'Number of port to expose on the host.

                                    If specified, this must be a valid port number, 0 < x < 65536.

                                    If HostNetwork is specified, this must match ContainerPort.

                                    Most containers do not need this.'
                                  format: int32
                                  type: integer
                                name:
                                  description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                    named port in a pod must have a unique name. Name for the port that can be

                                    referred to by services.'
                                  type: string
                                protocol:
                                  default: TCP
                                  description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                    Defaults to "TCP".'
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            description: 'Periodic probe of container service readiness.

                              Container will be removed from service endpoints if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            description: Resources resize policy for the container.
                            items:
                              description: ContainerResizePolicy represents resource resize policy for the container.
                              properties:
                                resourceName:
                                  description: 'Name of the resource to which this resource resize policy applies.

                                    Supported values: cpu, memory.'
                                  type: string
                                restartPolicy:
                                  description: 'Restart policy to apply when specified resource is resized.

                                    If not specified, it defaults to NotRequired.'
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            description: 'Compute Resources required by this container.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                            properties:
                              claims:
                                description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                  that are used by this container.


                                  This is an alpha field and requires enabling the

                                  DynamicResourceAllocation feature gate.


                                  This field is immutable. It can only be set for containers.'
                                items:
                                  description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                  properties:
                                    name:
                                      description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                        the Pod where this field is used. It makes that resource available

                                        inside a container.'
                                      type: string
                                    request:
                                      description: 'Request is the name chosen for a request in the referenced claim.

                                        If empty, everything from the claim is made available, otherwise

                                        only the result of this request.'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Limits describes the maximum amount of compute resources allowed.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Requests describes the minimum amount of compute resources required.

                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                            type: object
                          restartPolicy:
                            description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                              This field may only be set for init containers, and the only allowed value is "Always".

                              For non-init containers or when this field is not specified,

                              the restart behavior is defined by the Pod''s restart policy and the container type.

                              Setting the RestartPolicy as "Always" for the init container will have the following effect:

                              this init container will be continually restarted on

                              exit until all regular containers have terminated. Once all regular

                              containers have completed, all init containers with restartPolicy "Always"

                              will be shut down. This lifecycle differs from normal init containers and

                              is often referred to as a "sidecar" container. Although this init

                              container still starts in the init container sequence, it does not wait

                              for the container to complete before proceeding to the next init

                              container. Instead, the next init container starts immediately after this

                              init container is started, or after any startupProbe has successfully

                              completed.'
                            type: string
                          securityContext:
                            description: 'SecurityContext defines the security options the container should be run with.

                              If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                              More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                            properties:
                              allowPrivilegeEscalation:
                                description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                  privileges than its parent process. This bool directly controls if

                                  the no_new_privs flag will be set on the container process.

                                  AllowPrivilegeEscalation is true always when the container is:

                                  1) run as Privileged

                                  2) has CAP_SYS_ADMIN

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              appArmorProfile:
                                description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                  overrides the pod''s appArmorProfile.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must match the loaded name of the profile.

                                      Must be set if and only if type is "Localhost".'
                                    type: string
                                  type:
                                    description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                description: 'The capabilities to add/drop when running containers.

                                  Defaults to the default set of capabilities granted by the container runtime.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  add:
                                    description: Added capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    description: Removed capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                description: 'Run container in privileged mode.

                                  Processes in privileged containers are essentially equivalent to root on the host.

                                  Defaults to false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              procMount:
                                description: 'procMount denotes the type of proc mount to use for the containers.

                                  The default value is Default which uses the container runtime defaults for

                                  readonly paths and masked paths.

                                  This requires the ProcMountType feature flag to be enabled.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: string
                              readOnlyRootFilesystem:
                                description: 'Whether this container has a read-only root filesystem.

                                  Default is false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              runAsGroup:
                                description: 'The GID to run the entrypoint of the container process.

                                  Uses runtime default if unset.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              runAsNonRoot:
                                description: 'Indicates that the container must run as a non-root user.

                                  If true, the Kubelet will validate the image at runtime to ensure that it

                                  does not run as UID 0 (root) and fail to start the container if it does.

                                  If unset or false, no such validation will be performed.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                type: boolean
                              runAsUser:
                                description: 'The UID to run the entrypoint of the container process.

                                  Defaults to user specified in image metadata if unspecified.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              seLinuxOptions:
                                description: 'The SELinux context to be applied to the container.

                                  If unspecified, the container runtime will allocate a random SELinux context for each

                                  container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  level:
                                    description: Level is SELinux level label that applies to the container.
                                    type: string
                                  role:
                                    description: Role is a SELinux role label that applies to the container.
                                    type: string
                                  type:
                                    description: Type is a SELinux type label that applies to the container.
                                    type: string
                                  user:
                                    description: User is a SELinux user label that applies to the container.
                                    type: string
                                type: object
                              seccompProfile:
                                description: 'The seccomp options to use by this container. If seccomp options are

                                  provided at both the pod & container level, the container options

                                  override the pod options.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                      Must be set if type is "Localhost". Must NOT be set for any other type.'
                                    type: string
                                  type:
                                    description: 'type indicates which kind of seccomp profile will be applied.

                                      Valid options are:


                                      Localhost - a profile defined in a file on the node should be used.

                                      RuntimeDefault - the container runtime default profile should be used.

                                      Unconfined - no profile should be applied.'
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                description: 'The Windows specific settings applied to all containers.

                                  If unspecified, the options from the PodSecurityContext will be used.

                                  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is linux.'
                                properties:
                                  gmsaCredentialSpec:
                                    description: 'GMSACredentialSpec is where the GMSA admission webhook

                                      (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                      GMSA credential spec named by the GMSACredentialSpecName field.'
                                    type: string
                                  gmsaCredentialSpecName:
                                    description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                    type: string
                                  hostProcess:
                                    description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                      All of a Pod''s containers must have the same effective HostProcess value

                                      (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                      In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                    type: boolean
                                  runAsUserName:
                                    description: 'The UserName in Windows to run the entrypoint of the container process.

                                      Defaults to the user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext. If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            description: 'StartupProbe indicates that the Pod has successfully initialized.

                              If specified, no other probes are executed until this completes successfully.

                              If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                              This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                              when it might take a long time to load data or warm a cache, than during steady-state operation.

                              This cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                              is not set, reads from stdin in the container will always result in EOF.

                              Default is false.'
                            type: boolean
                          stdinOnce:
                            description: 'Whether the container runtime should close the stdin channel after it has been opened by

                              a single attach. When stdin is true the stdin stream will remain open across multiple attach

                              sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                              first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                              at which time stdin is closed and remains closed until the container is restarted. If this

                              flag is false, a container processes that reads from stdin will never receive an EOF.

                              Default is false'
                            type: boolean
                          terminationMessagePath:
                            description: 'Optional: Path at which the file to which the container''s termination message

                              will be written is mounted into the container''s filesystem.

                              Message written is intended to be brief final status, such as an assertion failure message.

                              Will be truncated by the node if greater than 4096 bytes. The total message length across

                              all containers will be limited to 12kb.

                              Defaults to /dev/termination-log.

                              Cannot be updated.'
                            type: string
                          terminationMessagePolicy:
                            description: 'Indicate how the termination message should be populated. File will use the contents of

                              terminationMessagePath to populate the container status message on both success and failure.

                              FallbackToLogsOnError will use the last chunk of container log output if the termination

                              message file is empty and the container exited with an error.

                              The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                              Defaults to File.

                              Cannot be updated.'
                            type: string
                          tty:
                            description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                              Default is false.'
                            type: boolean
                          volumeDevices:
                            description: volumeDevices is the list of block devices to be used by the container.
                            items:
                              description: volumeDevice describes a mapping of a raw block device within a container.
                              properties:
                                devicePath:
                                  description: devicePath is the path inside of the container that the device will be mapped to.
                                  type: string
                                name:
                                  description: name must match the name of a persistentVolumeClaim in the pod
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            description: 'Pod volumes to mount into the container''s filesystem.

                              Cannot be updated.'
                            items:
                              description: VolumeMount describes a mounting of a Volume within a container.
                              properties:
                                mountPath:
                                  description: 'Path within the container at which the volume should be mounted.  Must

                                    not contain '':''.'
                                  type: string
                                mountPropagation:
                                  description: 'mountPropagation determines how mounts are propagated from the host

                                    to container and the other way around.

                                    When not set, MountPropagationNone is used.

                                    This field is beta in 1.10.

                                    When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                    (which defaults to None).'
                                  type: string
                                name:
                                  description: This must match the Name of a Volume.
                                  type: string
                                readOnly:
                                  description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                    Defaults to false.'
                                  type: boolean
                                recursiveReadOnly:
                                  description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                    recursively.


                                    If ReadOnly is false, this field has no meaning and must be unspecified.


                                    If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                    recursively read-only.  If this field is set to IfPossible, the mount is made

                                    recursively read-only, if it is supported by the container runtime.  If this

                                    field is set to Enabled, the mount is made recursively read-only if it is

                                    supported by the container runtime, otherwise the pod will not be started and

                                    an error will be generated to indicate the reason.


                                    If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                    None (or be unspecified, which defaults to None).


                                    If this field is not specified, it is treated as an equivalent of Disabled.'
                                  type: string
                                subPath:
                                  description: 'Path within the volume from which the container''s volume should be mounted.

                                    Defaults to "" (volume''s root).'
                                  type: string
                                subPathExpr:
                                  description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                    Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                    Defaults to "" (volume''s root).

                                    SubPathExpr and SubPath are mutually exclusive.'
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            description: 'Container''s working directory.

                              If not specified, the container runtime''s default will be used, which

                              might be configured in the container image.

                              Cannot be updated.'
                            type: string
                        required:
                        - name
                        type: object
                      type: array
                    inputs:
                      description: Inputs describe what inputs parameters and artifacts are supplied to this template
                      properties:
                        artifacts:
                          description: Artifact are a list of artifacts passed as inputs
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        parameters:
                          description: 'Parameters are a list of parameters passed as inputs

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          maxItems: 500
                          type: array
                      type: object
                    memoize:
                      description: Memoize allows templates to use outputs generated from already executed templates
                      properties:
                        cache:
                          description: Cache sets and configures the kind of cache
                          properties:
                            configMap:
                              description: ConfigMap sets a ConfigMap-based cache
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - configMap
                          type: object
                        key:
                          description: Key is the key to use as the caching key
                          type: string
                        maxAge:
                          description: 'MaxAge is the maximum age (e.g. "180s", "24h") of an entry that is still considered valid. If an entry is older

                            than the MaxAge, it will be ignored.'
                          type: string
                      required:
                      - cache
                      - key
                      - maxAge
                      type: object
                    metadata:
                      description: Metadata sets the pods's metadata, i.e. annotations and labels
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    metrics:
                      description: Metrics are a list of metrics emitted from this template
                      properties:
                        prometheus:
                          description: 'Prometheus is a list of prometheus metrics to be emitted

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: Prometheus is a prometheus metric to be emitted
                            properties:
                              counter:
                                description: Counter is a counter metric
                                properties:
                                  value:
                                    description: Value is the value of the metric
                                    minLength: 1
                                    type: string
                                required:
                                - value
                                type: object
                              gauge:
                                description: Gauge is a gauge metric
                                properties:
                                  operation:
                                    description: Operation defines the operation to apply with value and the metrics' current value
                                    enum:
                                    - Set
                                    - Add
                                    - Sub
                                    type: string
                                  realtime:
                                    description: Realtime emits this metric in real time if applicable
                                    type: boolean
                                  value:
                                    description: 'Value is the value to be used in the operation with the metric''s current value. If no operation is set,

                                      value is the value of the metric

                                      MaxLength is an artificial limit to limit CEL validation costs - see note at top of file'
                                    maxLength: 256
                                    minLength: 1
                                    type: string
                                required:
                                - realtime
                                - value
                                type: object
                                x-kubernetes-validations:
                                - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                  rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                              help:
                                description: Help is a string that describes the metric
                                minLength: 1
                                type: string
                              histogram:
                                description: Histogram is a histogram metric
                                properties:
                                  buckets:
                                    description: Buckets is a list of bucket divisors for the histogram
                                    items:
                                      type: number
                                    type: array
                                  value:
                                    description: Value is the value of the metric
                                    minLength: 1
                                    type: string
                                required:
                                - buckets
                                - value
                                type: object
                              labels:
                                description: Labels is a list of metric labels
                                items:
                                  description: MetricLabel is a single label for a prometheus metric
                                  properties:
                                    key:
                                      pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - key
                                  - value
                                  type: object
                                type: array
                              name:
                                description: Name is the name of the metric
                                pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                type: string
                              when:
                                description: When is a conditional statement that decides when to emit the metric
                                type: string
                            required:
                            - help
                            - name
                            type: object
                          maxItems: 100
                          type: array
                      required:
                      - prometheus
                      type: object
                    name:
                      description: Name is the name of the template
                      maxLength: 128
                      pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                      type: string
                    nodeSelector:
                      additionalProperties:
                        type: string
                      description: 'NodeSelector is a selector to schedule this step of the workflow to be

                        run on the selected node(s). Overrides the selector set at the workflow level.'
                      type: object
                    outputs:
                      description: Outputs describe the parameters and artifacts that this template produces
                      properties:
                        artifacts:
                          description: Artifacts holds the list of output artifacts produced by a step
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        exitCode:
                          description: ExitCode holds the exit code of a script template
                          type: string
                        parameters:
                          description: Parameters holds the list of output parameters produced by a step
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        result:
                          description: Result holds the result (stdout) of a script or container template, or the response body of an HTTP template
                          type: string
                      type: object
                    parallelism:
                      description: 'Parallelism limits the max total parallel pods that can execute at the same time within the

                        boundaries of this template invocation. If additional steps/dag templates are invoked, the

                        pods created by those templates will not be counted towards this total.'
                      format: int64
                      minimum: 1
                      type: integer
                    plugin:
                      description: 'Plugin is a plugin template

                        Note: the structure of a plugin template is free-form, so we need to have

                        "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    podSpecPatch:
                      description: 'PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of

                        container fields which are not strings (e.g. resource limits).'
                      type: string
                    priorityClassName:
                      description: PriorityClassName to apply to workflow pods.
                      type: string
                    resource:
                      description: Resource template subtype which can run k8s resources
                      properties:
                        action:
                          description: 'Action is the action to perform to the resource.

                            Must be one of: get, create, apply, delete, replace, patch'
                          enum:
                          - get
                          - create
                          - apply
                          - delete
                          - replace
                          - patch
                          type: string
                        failureCondition:
                          description: 'FailureCondition is a label selector expression which describes the conditions

                            of the k8s resource in which the step was considered failed'
                          type: string
                        flags:
                          description: "Flags is a set of additional options passed to kubectl before submitting a resource\nI.e. to disable resource validation:\nflags: [\n\t\"--validate=false\"  # disable resource validation\n]"
                          items:
                            type: string
                          type: array
                        manifest:
                          description: Manifest contains the kubernetes manifest
                          type: string
                        manifestFrom:
                          description: ManifestFrom is the source for a single kubernetes manifest
                          properties:
                            artifact:
                              description: Artifact contains the artifact to use
                              properties:
                                archive:
                                  description: Archive controls how the artifact will be saved to the artifact repository.
                                  properties:
                                    none:
                                      description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                        files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                        save/load the directory appropriately.'
                                      type: object
                                    tar:
                                      description: TarStrategy will tar and gzip the file or directory when saving
                                      properties:
                                        compressionLevel:
                                          description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                            Defaults to gzip.DefaultCompression.'
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      description: ZipStrategy will unzip zipped input artifacts
                                      type: object
                                  type: object
                                archiveLogs:
                                  description: ArchiveLogs indicates if the container logs should be archived
                                  type: boolean
                                artifactGC:
                                  description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                  properties:
                                    podMetadata:
                                      description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                      type: string
                                    strategy:
                                      description: Strategy is the strategy to use.
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  description: Artifactory contains artifactory artifact location details
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      description: URL of the artifact
                                      type: string
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  description: Azure contains Azure Storage artifact location details
                                  properties:
                                    accountKeySecret:
                                      description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                      type: string
                                    container:
                                      description: Container is the container where resources will be stored
                                      type: string
                                    endpoint:
                                      description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  description: Has this been deleted?
                                  type: boolean
                                from:
                                  description: From allows an artifact to reference an artifact from a previous step
                                  type: string
                                fromExpression:
                                  description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                  type: string
                                gcs:
                                  description: GCS contains GCS artifact location details
                                  properties:
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    serviceAccountKeySecret:
                                      description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  description: Git contains git artifact location details
                                  properties:
                                    branch:
                                      description: Branch is the branch to fetch when `SingleBranch` is enabled
                                      type: string
                                    depth:
                                      description: 'Depth specifies clones/fetches should be shallow and include the given

                                        number of commits from the branch tip'
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      description: DisableSubmodules disables submodules during git clone
                                      type: boolean
                                    fetch:
                                      description: Fetch specifies a number of refs that should be fetched before checkout
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                      type: boolean
                                    insecureSkipTLS:
                                      description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                      type: boolean
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      description: Repo is the git repository
                                      type: string
                                    revision:
                                      description: Revision is the git commit, tag, branch to checkout
                                      type: string
                                    singleBranch:
                                      description: SingleBranch enables single branch clone, using the `branch` parameter
                                      type: boolean
                                    sshPrivateKeySecret:
                                      description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  description: 'GlobalName exports an output artifact to the global scope, making it available as

                                    ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                  type: string
                                hdfs:
                                  description: HDFS contains HDFS artifact location details
                                  properties:
                                    addresses:
                                      description: Addresses is accessible addresses of HDFS name nodes
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                        It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                      type: string
                                    force:
                                      description: Force copies a file forcibly even if it exists
                                      type: boolean
                                    hdfsUser:
                                      description: 'HDFSUser is the user to access HDFS file system.

                                        It is ignored if either ccache or keytab is used.'
                                      type: string
                                    krbCCacheSecret:
                                      description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      description: 'KrbConfig is the configmap selector for Kerberos config as string

                                        It must be set if either ccache or keytab is used.'
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    krbServicePrincipalName:
                                      description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                        It must be set if either ccache or keytab is used.'
                                      type: string
                                    krbUsername:
                                      description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    path:
                                      description: Path is a file path in HDFS
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  description: HTTP contains HTTP artifact location details
                                  properties:
                                    auth:
                                      description: Auth contains information for client authentication
                                      properties:
                                        basicAuth:
                                          description: BasicAuth describes the secret selectors required for basic authentication
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          description: ClientCertAuth holds necessary information for client authentication via certificates
                                          properties:
                                            clientCertSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                          properties:
                                            clientIDSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                properties:
                                                  key:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                      items:
                                        description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                        properties:
                                          name:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      description: URL of the artifact
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                    Set when loading input artifacts. It is recommended to set the mode value

                                    to ensure the artifact has the expected permissions in your container.'
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  description: name of the artifact. must be unique within a template's inputs/outputs.
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                  type: boolean
                                oss:
                                  description: OSS contains OSS artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                      type: boolean
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    lifecycleRule:
                                      description: LifecycleRule specifies how to manage bucket's lifecycle
                                      properties:
                                        markDeletionAfterDays:
                                          description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  description: Path is the container path to the artifact
                                  type: string
                                plugin:
                                  description: Plugin contains plugin artifact location details
                                  properties:
                                    configuration:
                                      description: Configuration is the plugin defined configuration for the artifact driver plugin
                                      type: string
                                    connectionTimeoutSeconds:
                                      description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                      format: int32
                                      type: integer
                                    key:
                                      description: Key is the path in the artifact repository where the artifact resides
                                      type: string
                                    name:
                                      description: Name is the name of the artifact driver plugin
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  description: Raw contains raw artifact location details
                                  properties:
                                    data:
                                      description: Data is the string contents of the artifact
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                  type: boolean
                                s3:
                                  description: S3 contains S3 artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    caSecret:
                                      description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                      properties:
                                        objectLocking:
                                          description: ObjectLocking Enable object locking
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      description: S3EncryptionOptions used to determine encryption options during s3 operations
                                      properties:
                                        enableEncryption:
                                          description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                          type: boolean
                                        kmsEncryptionContext:
                                          description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                          type: string
                                        kmsKeyId:
                                          description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                          type: string
                                        serverSideCustomerKeySecret:
                                          description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    insecure:
                                      description: Insecure will connect to the service with TLS
                                      type: boolean
                                    key:
                                      description: Key is the key in the bucket where the artifact resides
                                      type: string
                                    region:
                                      description: Region contains the optional bucket region
                                      type: string
                                    roleARN:
                                      description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                      type: string
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  type: object
                                subPath:
                                  description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                  type: string
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: at most one artifact location can be specified
                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          required:
                          - artifact
                          type: object
                        mergeStrategy:
                          description: 'MergeStrategy is the strategy used to merge a patch. It defaults to "strategic"

                            Must be one of: strategic, merge, json'
                          enum:
                          - strategic
                          - merge
                          - json
                          type: string
                        setOwnerReference:
                          description: SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource.
                          type: boolean
                        successCondition:
                          description: 'SuccessCondition is a label selector expression which describes the conditions

                            of the k8s resource in which it is acceptable to proceed to the following step'
                          type: string
                      required:
                      - action
                      type: object
                      x-kubernetes-validations:
                      - message: only one of manifest or manifestFrom can be specified
                        rule: (has(self.manifest) && !has(self.manifestFrom)) || (!has(self.manifest) && has(self.manifestFrom)) || (!has(self.manifest) && !has(self.manifestFrom))
                    retryStrategy:
                      description: RetryStrategy describes how to retry a template when it fails
                      properties:
                        affinity:
                          description: Affinity prevents running workflow's step on the same host
                          properties:
                            nodeAntiAffinity:
                              description: 'RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed.

                                In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".'
                              type: object
                          type: object
                        backoff:
                          description: Backoff is a backoff strategy
                          properties:
                            cap:
                              description: 'Cap is a limit on revised values of the duration parameter. If a

                                multiplication by the factor parameter would make the duration

                                exceed the cap then the duration is set to the cap'
                              type: string
                            duration:
                              description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                              type: string
                            factor:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Factor is a factor to multiply the base duration after each failed retry
                              x-kubernetes-int-or-string: true
                            maxDuration:
                              description: 'MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy.

                                It is important to note that if the workflow template includes activeDeadlineSeconds, the pod''s deadline is initially set with activeDeadlineSeconds.

                                However, when the workflow fails, the pod''s deadline is then overridden by maxDuration.

                                This ensures that the workflow does not exceed the specified maximum duration when retries are involved.'
                              type: string
                          type: object
                        expression:
                          description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                            be retried and the retry strategy will be ignored'
                          type: string
                        limit:
                          anyOf:
                          - type: integer
                          - type: string
                          description: 'Limit is the maximum number of retry attempts when retrying a container. It does not include the original

                            container; the maximum number of total attempts will be `limit + 1`.'
                          x-kubernetes-int-or-string: true
                        retryPolicy:
                          description: RetryPolicy is a policy of NodePhase statuses that will be retried
                          enum:
                          - Always
                          - OnFailure
                          - OnError
                          - OnTransientError
                          type: string
                      type: object
                    schedulerName:
                      description: 'If specified, the pod will be dispatched by specified scheduler.

                        Or it will be dispatched by workflow scope scheduler if specified.

                        If neither specified, the pod will be dispatched by default scheduler.'
                      type: string
                    script:
                      description: Script runs a portion of code against an interpreter
                      properties:
                        args:
                          description: 'Arguments to the entrypoint.

                            The container image''s CMD is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          description: 'Entrypoint array. Not executed within a shell.

                            The container image''s ENTRYPOINT is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          description: 'List of environment variables to set in the container.

                            Cannot be updated.'
                          items:
                            description: EnvVar represents an environment variable present in a Container.
                            properties:
                              name:
                                description: Name of the environment variable. Must be a C_IDENTIFIER.
                                type: string
                              value:
                                description: 'Variable references $(VAR_NAME) are expanded

                                  using the previously defined environment variables in the container and

                                  any service environment variables. If a variable cannot be resolved,

                                  the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                  "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                  Escaped references will never be expanded, regardless of whether the variable

                                  exists or not.

                                  Defaults to "".'
                                type: string
                              valueFrom:
                                description: Source for the environment variable's value. Cannot be used if value is not empty.
                                properties:
                                  configMapKeyRef:
                                    description: Selects a key of a ConfigMap.
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                      spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                    properties:
                                      apiVersion:
                                        description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                        type: string
                                      fieldPath:
                                        description: Path of the field to select in the specified API version.
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    description: 'Selects a resource of the container: only resources limits and requests

                                      (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                    properties:
                                      containerName:
                                        description: 'Container name: required for volumes, optional for env vars'
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Specifies the output format of the exposed resources, defaults to "1"
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        description: 'Required: resource to select'
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    description: Selects a key of a secret in the pod's namespace
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          description: 'List of sources to populate environment variables in the container.

                            The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                            will be reported as an event when the container is starting. When a key exists in multiple

                            sources, the value associated with the last source will take precedence.

                            Values defined by an Env with a duplicate key will take precedence.

                            Cannot be updated.'
                          items:
                            description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                            properties:
                              configMapRef:
                                description: The ConfigMap to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                type: string
                              secretRef:
                                description: The Secret to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the Secret must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          description: 'Container image name.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                        imagePullPolicy:
                          description: 'Image pull policy.

                            One of Always, Never, IfNotPresent.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                          type: string
                        lifecycle:
                          description: 'Actions that the management system should take in response to container lifecycle events.

                            Cannot be updated.'
                          properties:
                            postStart:
                              description: 'PostStart is called immediately after a container is created. If the handler fails,

                                the container is terminated and restarted according to its restart policy.

                                Other management of the container blocks until the hook completes.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              description: 'PreStop is called immediately before a container is terminated due to an

                                API request or management event such as liveness/startup probe failure,

                                preemption, resource contention, etc. The handler is not called if the

                                container crashes or exits. The Pod''s termination grace period countdown begins before the

                                PreStop hook is executed. Regardless of the outcome of the handler, the

                                container will eventually terminate within the Pod''s termination grace

                                period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                or until the termination grace period is reached.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                If not specified, the default is defined by the container runtime in use.

                                StopSignal can only be set for Pods with a non-empty .spec.os.name'
                              type: string
                          type: object
                        livenessProbe:
                          description: 'Periodic probe of container liveness.

                            Container will be restarted if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        name:
                          description: 'Name of the container specified as a DNS_LABEL.

                            Each container in a pod must have a unique name (DNS_LABEL).

                            Cannot be updated.'
                          type: string
                        ports:
                          description: 'List of ports to expose from the container. Not specifying a port here

                            DOES NOT prevent that port from being exposed. Any port which is

                            listening on the default "0.0.0.0" address inside a container will be

                            accessible from the network.

                            Modifying this array with strategic merge patch may corrupt the data.

                            For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                            Cannot be updated.'
                          items:
                            description: ContainerPort represents a network port in a single container.
                            properties:
                              containerPort:
                                description: 'Number of port to expose on the pod''s IP address.

                                  This must be a valid port number, 0 < x < 65536.'
                                format: int32
                                type: integer
                              hostIP:
                                description: What host IP to bind the external port to.
                                type: string
                              hostPort:
                                description: 'Number of port to expose on the host.

                                  If specified, this must be a valid port number, 0 < x < 65536.

                                  If HostNetwork is specified, this must match ContainerPort.

                                  Most containers do not need this.'
                                format: int32
                                type: integer
                              name:
                                description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                  named port in a pod must have a unique name. Name for the port that can be

                                  referred to by services.'
                                type: string
                              protocol:
                                default: TCP
                                description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                  Defaults to "TCP".'
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          description: 'Periodic probe of container service readiness.

                            Container will be removed from service endpoints if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          description: Resources resize policy for the container.
                          items:
                            description: ContainerResizePolicy represents resource resize policy for the container.
                            properties:
                              resourceName:
                                description: 'Name of the resource to which this resource resize policy applies.

                                  Supported values: cpu, memory.'
                                type: string
                              restartPolicy:
                                description: 'Restart policy to apply when specified resource is resized.

                                  If not specified, it defaults to NotRequired.'
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          description: 'Compute Resources required by this container.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                          properties:
                            claims:
                              description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                that are used by this container.


                                This is an alpha field and requires enabling the

                                DynamicResourceAllocation feature gate.


                                This field is immutable. It can only be set for containers.'
                              items:
                                description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                properties:
                                  name:
                                    description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                      the Pod where this field is used. It makes that resource available

                                      inside a container.'
                                    type: string
                                  request:
                                    description: 'Request is the name chosen for a request in the referenced claim.

                                      If empty, everything from the claim is made available, otherwise

                                      only the result of this request.'
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        restartPolicy:
                          description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                            This field may only be set for init containers, and the only allowed value is "Always".

                            For non-init containers or when this field is not specified,

                            the restart behavior is defined by the Pod''s restart policy and the container type.

                            Setting the RestartPolicy as "Always" for the init container will have the following effect:

                            this init container will be continually restarted on

                            exit until all regular containers have terminated. Once all regular

                            containers have completed, all init containers with restartPolicy "Always"

                            will be shut down. This lifecycle differs from normal init containers and

                            is often referred to as a "sidecar" container. Although this init

                            container still starts in the init container sequence, it does not wait

                            for the container to complete before proceeding to the next init

                            container. Instead, the next init container starts immediately after this

                            init container is started, or after any startupProbe has successfully

                            completed.'
                          type: string
                        securityContext:
                          description: 'SecurityContext defines the security options the container should be run with.

                            If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                            More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                          properties:
                            allowPrivilegeEscalation:
                              description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                privileges than its parent process. This bool directly controls if

                                the no_new_privs flag will be set on the container process.

                                AllowPrivilegeEscalation is true always when the container is:

                                1) run as Privileged

                                2) has CAP_SYS_ADMIN

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            appArmorProfile:
                              description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                overrides the pod''s appArmorProfile.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must match the loaded name of the profile.

                                    Must be set if and only if type is "Localhost".'
                                  type: string
                                type:
                                  description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              description: 'The capabilities to add/drop when running containers.

                                Defaults to the default set of capabilities granted by the container runtime.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                add:
                                  description: Added capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  description: Removed capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              description: 'Run container in privileged mode.

                                Processes in privileged containers are essentially equivalent to root on the host.

                                Defaults to false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            procMount:
                              description: 'procMount denotes the type of proc mount to use for the containers.

                                The default value is Default which uses the container runtime defaults for

                                readonly paths and masked paths.

                                This requires the ProcMountType feature flag to be enabled.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            readOnlyRootFilesystem:
                              description: 'Whether this container has a read-only root filesystem.

                                Default is false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            runAsGroup:
                              description: 'The GID to run the entrypoint of the container process.

                                Uses runtime default if unset.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            runAsNonRoot:
                              description: 'Indicates that the container must run as a non-root user.

                                If true, the Kubelet will validate the image at runtime to ensure that it

                                does not run as UID 0 (root) and fail to start the container if it does.

                                If unset or false, no such validation will be performed.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: boolean
                            runAsUser:
                              description: 'The UID to run the entrypoint of the container process.

                                Defaults to user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            seLinuxOptions:
                              description: 'The SELinux context to be applied to the container.

                                If unspecified, the container runtime will allocate a random SELinux context for each

                                container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                level:
                                  description: Level is SELinux level label that applies to the container.
                                  type: string
                                role:
                                  description: Role is a SELinux role label that applies to the container.
                                  type: string
                                type:
                                  description: Type is a SELinux type label that applies to the container.
                                  type: string
                                user:
                                  description: User is a SELinux user label that applies to the container.
                                  type: string
                              type: object
                            seccompProfile:
                              description: 'The seccomp options to use by this container. If seccomp options are

                                provided at both the pod & container level, the container options

                                override the pod options.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                    Must be set if type is "Localhost". Must NOT be set for any other type.'
                                  type: string
                                type:
                                  description: 'type indicates which kind of seccomp profile will be applied.

                                    Valid options are:


                                    Localhost - a profile defined in a file on the node should be used.

                                    RuntimeDefault - the container runtime default profile should be used.

                                    Unconfined - no profile should be applied.'
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              description: 'The Windows specific settings applied to all containers.

                                If unspecified, the options from the PodSecurityContext will be used.

                                If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is linux.'
                              properties:
                                gmsaCredentialSpec:
                                  description: 'GMSACredentialSpec is where the GMSA admission webhook

                                    (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                    GMSA credential spec named by the GMSACredentialSpecName field.'
                                  type: string
                                gmsaCredentialSpecName:
                                  description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                  type: string
                                hostProcess:
                                  description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                    All of a Pod''s containers must have the same effective HostProcess value

                                    (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                    In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                  type: boolean
                                runAsUserName:
                                  description: 'The UserName in Windows to run the entrypoint of the container process.

                                    Defaults to the user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext. If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: string
                              type: object
                          type: object
                        source:
                          description: Source contains the source code of the script to execute
                          type: string
                        startupProbe:
                          description: 'StartupProbe indicates that the Pod has successfully initialized.

                            If specified, no other probes are executed until this completes successfully.

                            If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                            This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                            when it might take a long time to load data or warm a cache, than during steady-state operation.

                            This cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                            is not set, reads from stdin in the container will always result in EOF.

                            Default is false.'
                          type: boolean
                        stdinOnce:
                          description: 'Whether the container runtime should close the stdin channel after it has been opened by

                            a single attach. When stdin is true the stdin stream will remain open across multiple attach

                            sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                            first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                            at which time stdin is closed and remains closed until the container is restarted. If this

                            flag is false, a container processes that reads from stdin will never receive an EOF.

                            Default is false'
                          type: boolean
                        terminationMessagePath:
                          description: 'Optional: Path at which the file to which the container''s termination message

                            will be written is mounted into the container''s filesystem.

                            Message written is intended to be brief final status, such as an assertion failure message.

                            Will be truncated by the node if greater than 4096 bytes. The total message length across

                            all containers will be limited to 12kb.

                            Defaults to /dev/termination-log.

                            Cannot be updated.'
                          type: string
                        terminationMessagePolicy:
                          description: 'Indicate how the termination message should be populated. File will use the contents of

                            terminationMessagePath to populate the container status message on both success and failure.

                            FallbackToLogsOnError will use the last chunk of container log output if the termination

                            message file is empty and the container exited with an error.

                            The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                            Defaults to File.

                            Cannot be updated.'
                          type: string
                        tty:
                          description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                            Default is false.'
                          type: boolean
                        volumeDevices:
                          description: volumeDevices is the list of block devices to be used by the container.
                          items:
                            description: volumeDevice describes a mapping of a raw block device within a container.
                            properties:
                              devicePath:
                                description: devicePath is the path inside of the container that the device will be mapped to.
                                type: string
                              name:
                                description: name must match the name of a persistentVolumeClaim in the pod
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          description: 'Pod volumes to mount into the container''s filesystem.

                            Cannot be updated.'
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          description: 'Container''s working directory.

                            If not specified, the container runtime''s default will be used, which

                            might be configured in the container image.

                            Cannot be updated.'
                          type: string
                      type: object
                    securityContext:
                      description: 'SecurityContext holds pod-level security attributes and common container settings.

                        Optional: Defaults to empty.  See type description for default values of each field.'
                      properties:
                        appArmorProfile:
                          description: 'appArmorProfile is the AppArmor options to use by the containers in this pod.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            localhostProfile:
                              description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                The profile must be preconfigured on the node to work.

                                Must match the loaded name of the profile.

                                Must be set if and only if type is "Localhost".'
                              type: string
                            type:
                              description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                              type: string
                          required:
                          - type
                          type: object
                        fsGroup:
                          description: 'A special supplemental group that applies to all containers in a pod.

                            Some volume types allow the Kubelet to change the ownership of that volume

                            to be owned by the pod:


                            1. The owning GID will be the FSGroup

                            2. The setgid bit is set (new files created in the volume will be owned by FSGroup)

                            3. The permission bits are OR''d with rw-rw----


                            If unset, the Kubelet will not modify the ownership and permissions of any volume.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        fsGroupChangePolicy:
                          description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume

                            before being exposed inside Pod. This field will only apply to

                            volume types which support fsGroup based ownership(and permissions).

                            It will have no effect on ephemeral volume types such as: secret, configmaps

                            and emptydir.

                            Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        runAsGroup:
                          description: 'The GID to run the entrypoint of the container process.

                            Uses runtime default if unset.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence

                            for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        runAsNonRoot:
                          description: 'Indicates that the container must run as a non-root user.

                            If true, the Kubelet will validate the image at runtime to ensure that it

                            does not run as UID 0 (root) and fail to start the container if it does.

                            If unset or false, no such validation will be performed.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence.'
                          type: boolean
                        runAsUser:
                          description: 'The UID to run the entrypoint of the container process.

                            Defaults to user specified in image metadata if unspecified.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence

                            for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        seLinuxChangePolicy:
                          description: 'seLinuxChangePolicy defines how the container''s SELinux label is applied to all volumes used by the Pod.

                            It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.

                            Valid values are "MountOption" and "Recursive".


                            "Recursive" means relabeling of all files on all Pod volumes by the container runtime.

                            This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.


                            "MountOption" mounts all eligible Pod volumes with `-o context` mount option.

                            This requires all Pods that share the same volume to use the same SELinux label.

                            It is not possible to share the same volume among privileged and unprivileged Pods.

                            Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes

                            whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their

                            CSIDriver instance. Other volumes are always re-labelled recursively.

                            "MountOption" value is allowed only when SELinuxMount feature gate is enabled.


                            If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.

                            If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes

                            and "Recursive" for all other volumes.


                            This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.


                            All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        seLinuxOptions:
                          description: 'The SELinux context to be applied to all containers.

                            If unspecified, the container runtime will allocate a random SELinux context for each

                            container.  May also be set in SecurityContext.  If set in

                            both SecurityContext and PodSecurityContext, the value specified in SecurityContext

                            takes precedence for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            level:
                              description: Level is SELinux level label that applies to the container.
                              type: string
                            role:
                              description: Role is a SELinux role label that applies to the container.
                              type: string
                            type:
                              description: Type is a SELinux type label that applies to the container.
                              type: string
                            user:
                              description: User is a SELinux user label that applies to the container.
                              type: string
                          type: object
                        seccompProfile:
                          description: 'The seccomp options to use by the containers in this pod.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            localhostProfile:
                              description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                The profile must be preconfigured on the node to work.

                                Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                Must be set if type is "Localhost". Must NOT be set for any other type.'
                              type: string
                            type:
                              description: 'type indicates which kind of seccomp profile will be applied.

                                Valid options are:


                                Localhost - a profile defined in a file on the node should be used.

                                RuntimeDefault - the container runtime default profile should be used.

                                Unconfined - no profile should be applied.'
                              type: string
                          required:
                          - type
                          type: object
                        supplementalGroups:
                          description: 'A list of groups applied to the first process run in each container, in

                            addition to the container''s primary GID and fsGroup (if specified).  If

                            the SupplementalGroupsPolicy feature is enabled, the

                            supplementalGroupsPolicy field determines whether these are in addition

                            to or instead of any group memberships defined in the container image.

                            If unspecified, no additional groups are added, though group memberships

                            defined in the container image may still be used, depending on the

                            supplementalGroupsPolicy field.

                            Note that this field cannot be set when spec.os.name is windows.'
                          items:
                            format: int64
                            type: integer
                          type: array
                          x-kubernetes-list-type: atomic
                        supplementalGroupsPolicy:
                          description: 'Defines how supplemental groups of the first container processes are calculated.

                            Valid values are "Merge" and "Strict". If not specified, "Merge" is used.

                            (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled

                            and the container runtime must implement support for this feature.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        sysctls:
                          description: 'Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported

                            sysctls (by the container runtime) might fail to launch.

                            Note that this field cannot be set when spec.os.name is windows.'
                          items:
                            description: Sysctl defines a kernel parameter to be set
                            properties:
                              name:
                                description: Name of a property to set
                                type: string
                              value:
                                description: Value of a property to set
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        windowsOptions:
                          description: 'The Windows specific settings applied to all containers.

                            If unspecified, the options within a container''s SecurityContext will be used.

                            If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                            Note that this field cannot be set when spec.os.name is linux.'
                          properties:
                            gmsaCredentialSpec:
                              description: 'GMSACredentialSpec is where the GMSA admission webhook

                                (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                GMSA credential spec named by the GMSACredentialSpecName field.'
                              type: string
                            gmsaCredentialSpecName:
                              description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                              type: string
                            hostProcess:
                              description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                All of a Pod''s containers must have the same effective HostProcess value

                                (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                In addition, if HostProcess is true then HostNetwork must also be set to true.'
                              type: boolean
                            runAsUserName:
                              description: 'The UserName in Windows to run the entrypoint of the container process.

                                Defaults to the user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext. If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: string
                          type: object
                      type: object
                    serviceAccountName:
                      description: ServiceAccountName to apply to workflow pods
                      type: string
                    sidecars:
                      description: 'Sidecars is a list of containers which run alongside the main container

                        Sidecars are automatically killed when the main container completes'
                      items:
                        description: UserContainer is a container specified by a user.
                        properties:
                          args:
                            description: 'Arguments to the entrypoint.

                              The container image''s CMD is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            description: 'Entrypoint array. Not executed within a shell.

                              The container image''s ENTRYPOINT is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            description: 'List of environment variables to set in the container.

                              Cannot be updated.'
                            items:
                              description: EnvVar represents an environment variable present in a Container.
                              properties:
                                name:
                                  description: Name of the environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                value:
                                  description: 'Variable references $(VAR_NAME) are expanded

                                    using the previously defined environment variables in the container and

                                    any service environment variables. If a variable cannot be resolved,

                                    the reference in the input string will be unchanged. Double $$ are reduced

                                    to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                    "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                    Escaped references will never be expanded, regardless of whether the variable

                                    exists or not.

                                    Defaults to "".'
                                  type: string
                                valueFrom:
                                  description: Source for the environment variable's value. Cannot be used if value is not empty.
                                  properties:
                                    configMapKeyRef:
                                      description: Selects a key of a ConfigMap.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                        spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      description: Selects a key of a secret in the pod's namespace
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            description: 'List of sources to populate environment variables in the container.

                              The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                              will be reported as an event when the container is starting. When a key exists in multiple

                              sources, the value associated with the last source will take precedence.

                              Values defined by an Env with a duplicate key will take precedence.

                              Cannot be updated.'
                            items:
                              description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                              properties:
                                configMapRef:
                                  description: The ConfigMap to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                secretRef:
                                  description: The Secret to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            description: 'Container image name.

                              More info: https://kubernetes.io/docs/concepts/containers/images

                              This field is optional to allow higher level config management to default or override

                              container images in workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy.

                              One of Always, Never, IfNotPresent.

                              Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          lifecycle:
                            description: 'Actions that the management system should take in response to container lifecycle events.

                              Cannot be updated.'
                            properties:
                              postStart:
                                description: 'PostStart is called immediately after a container is created. If the handler fails,

                                  the container is terminated and restarted according to its restart policy.

                                  Other management of the container blocks until the hook completes.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                description: 'PreStop is called immediately before a container is terminated due to an

                                  API request or management event such as liveness/startup probe failure,

                                  preemption, resource contention, etc. The handler is not called if the

                                  container crashes or exits. The Pod''s termination grace period countdown begins before the

                                  PreStop hook is executed. Regardless of the outcome of the handler, the

                                  container will eventually terminate within the Pod''s termination grace

                                  period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                  or until the termination grace period is reached.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                  If not specified, the default is defined by the container runtime in use.

                                  StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                type: string
                            type: object
                          livenessProbe:
                            description: 'Periodic probe of container liveness.

                              Container will be restarted if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          mirrorVolumeMounts:
                            description: 'MirrorVolumeMounts will mount the same volumes specified in the main container

                              to the container (including artifacts), at the same mountPaths. This enables

                              dind daemon to partially see the same filesystem as the main container in

                              order to use features such as docker volume binding'
                            type: boolean
                          name:
                            description: 'Name of the container specified as a DNS_LABEL.

                              Each container in a pod must have a unique name (DNS_LABEL).

                              Cannot be updated.'
                            type: string
                          ports:
                            description: 'List of ports to expose from the container. Not specifying a port here

                              DOES NOT prevent that port from being exposed. Any port which is

                              listening on the default "0.0.0.0" address inside a container will be

                              accessible from the network.

                              Modifying this array with strategic merge patch may corrupt the data.

                              For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                              Cannot be updated.'
                            items:
                              description: ContainerPort represents a network port in a single container.
                              properties:
                                containerPort:
                                  description: 'Number of port to expose on the pod''s IP address.

                                    This must be a valid port number, 0 < x < 65536.'
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port to.
                                  type: string
                                hostPort:
                                  description: 'Number of port to expose on the host.

                                    If specified, this must be a valid port number, 0 < x < 65536.

                                    If HostNetwork is specified, this must match ContainerPort.

                                    Most containers do not need this.'
                                  format: int32
                                  type: integer
                                name:
                                  description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                    named port in a pod must have a unique name. Name for the port that can be

                                    referred to by services.'
                                  type: string
                                protocol:
                                  default: TCP
                                  description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                    Defaults to "TCP".'
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            description: 'Periodic probe of container service readiness.

                              Container will be removed from service endpoints if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            description: Resources resize policy for the container.
                            items:
                              description: ContainerResizePolicy represents resource resize policy for the container.
                              properties:
                                resourceName:
                                  description: 'Name of the resource to which this resource resize policy applies.

                                    Supported values: cpu, memory.'
                                  type: string
                                restartPolicy:
                                  description: 'Restart policy to apply when specified resource is resized.

                                    If not specified, it defaults to NotRequired.'
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            description: 'Compute Resources required by this container.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                            properties:
                              claims:
                                description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                  that are used by this container.


                                  This is an alpha field and requires enabling the

                                  DynamicResourceAllocation feature gate.


                                  This field is immutable. It can only be set for containers.'
                                items:
                                  description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                  properties:
                                    name:
                                      description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                        the Pod where this field is used. It makes that resource available

                                        inside a container.'
                                      type: string
                                    request:
                                      description: 'Request is the name chosen for a request in the referenced claim.

                                        If empty, everything from the claim is made available, otherwise

                                        only the result of this request.'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Limits describes the maximum amount of compute resources allowed.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Requests describes the minimum amount of compute resources required.

                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                            type: object
                          restartPolicy:
                            description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                              This field may only be set for init containers, and the only allowed value is "Always".

                              For non-init containers or when this field is not specified,

                              the restart behavior is defined by the Pod''s restart policy and the container type.

                              Setting the RestartPolicy as "Always" for the init container will have the following effect:

                              this init container will be continually restarted on

                              exit until all regular containers have terminated. Once all regular

                              containers have completed, all init containers with restartPolicy "Always"

                              will be shut down. This lifecycle differs from normal init containers and

                              is often referred to as a "sidecar" container. Although this init

                              container still starts in the init container sequence, it does not wait

                              for the container to complete before proceeding to the next init

                              container. Instead, the next init container starts immediately after this

                              init container is started, or after any startupProbe has successfully

                              completed.'
                            type: string
                          securityContext:
                            description: 'SecurityContext defines the security options the container should be run with.

                              If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                              More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                            properties:
                              allowPrivilegeEscalation:
                                description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                  privileges than its parent process. This bool directly controls if

                                  the no_new_privs flag will be set on the container process.

                                  AllowPrivilegeEscalation is true always when the container is:

                                  1) run as Privileged

                                  2) has CAP_SYS_ADMIN

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              appArmorProfile:
                                description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                  overrides the pod''s appArmorProfile.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must match the loaded name of the profile.

                                      Must be set if and only if type is "Localhost".'
                                    type: string
                                  type:
                                    description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                description: 'The capabilities to add/drop when running containers.

                                  Defaults to the default set of capabilities granted by the container runtime.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  add:
                                    description: Added capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    description: Removed capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                description: 'Run container in privileged mode.

                                  Processes in privileged containers are essentially equivalent to root on the host.

                                  Defaults to false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              procMount:
                                description: 'procMount denotes the type of proc mount to use for the containers.

                                  The default value is Default which uses the container runtime defaults for

                                  readonly paths and masked paths.

                                  This requires the ProcMountType feature flag to be enabled.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: string
                              readOnlyRootFilesystem:
                                description: 'Whether this container has a read-only root filesystem.

                                  Default is false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              runAsGroup:
                                description: 'The GID to run the entrypoint of the container process.

                                  Uses runtime default if unset.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              runAsNonRoot:
                                description: 'Indicates that the container must run as a non-root user.

                                  If true, the Kubelet will validate the image at runtime to ensure that it

                                  does not run as UID 0 (root) and fail to start the container if it does.

                                  If unset or false, no such validation will be performed.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                type: boolean
                              runAsUser:
                                description: 'The UID to run the entrypoint of the container process.

                                  Defaults to user specified in image metadata if unspecified.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              seLinuxOptions:
                                description: 'The SELinux context to be applied to the container.

                                  If unspecified, the container runtime will allocate a random SELinux context for each

                                  container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  level:
                                    description: Level is SELinux level label that applies to the container.
                                    type: string
                                  role:
                                    description: Role is a SELinux role label that applies to the container.
                                    type: string
                                  type:
                                    description: Type is a SELinux type label that applies to the container.
                                    type: string
                                  user:
                                    description: User is a SELinux user label that applies to the container.
                                    type: string
                                type: object
                              seccompProfile:
                                description: 'The seccomp options to use by this container. If seccomp options are

                                  provided at both the pod & container level, the container options

                                  override the pod options.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                      Must be set if type is "Localhost". Must NOT be set for any other type.'
                                    type: string
                                  type:
                                    description: 'type indicates which kind of seccomp profile will be applied.

                                      Valid options are:


                                      Localhost - a profile defined in a file on the node should be used.

                                      RuntimeDefault - the container runtime default profile should be used.

                                      Unconfined - no profile should be applied.'
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                description: 'The Windows specific settings applied to all containers.

                                  If unspecified, the options from the PodSecurityContext will be used.

                                  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is linux.'
                                properties:
                                  gmsaCredentialSpec:
                                    description: 'GMSACredentialSpec is where the GMSA admission webhook

                                      (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                      GMSA credential spec named by the GMSACredentialSpecName field.'
                                    type: string
                                  gmsaCredentialSpecName:
                                    description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                    type: string
                                  hostProcess:
                                    description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                      All of a Pod''s containers must have the same effective HostProcess value

                                      (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                      In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                    type: boolean
                                  runAsUserName:
                                    description: 'The UserName in Windows to run the entrypoint of the container process.

                                      Defaults to the user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext. If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            description: 'StartupProbe indicates that the Pod has successfully initialized.

                              If specified, no other probes are executed until this completes successfully.

                              If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                              This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                              when it might take a long time to load data or warm a cache, than during steady-state operation.

                              This cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                              is not set, reads from stdin in the container will always result in EOF.

                              Default is false.'
                            type: boolean
                          stdinOnce:
                            description: 'Whether the container runtime should close the stdin channel after it has been opened by

                              a single attach. When stdin is true the stdin stream will remain open across multiple attach

                              sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                              first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                              at which time stdin is closed and remains closed until the container is restarted. If this

                              flag is false, a container processes that reads from stdin will never receive an EOF.

                              Default is false'
                            type: boolean
                          terminationMessagePath:
                            description: 'Optional: Path at which the file to which the container''s termination message

                              will be written is mounted into the container''s filesystem.

                              Message written is intended to be brief final status, such as an assertion failure message.

                              Will be truncated by the node if greater than 4096 bytes. The total message length across

                              all containers will be limited to 12kb.

                              Defaults to /dev/termination-log.

                              Cannot be updated.'
                            type: string
                          terminationMessagePolicy:
                            description: 'Indicate how the termination message should be populated. File will use the contents of

                              terminationMessagePath to populate the container status message on both success and failure.

                              FallbackToLogsOnError will use the last chunk of container log output if the termination

                              message file is empty and the container exited with an error.

                              The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                              Defaults to File.

                              Cannot be updated.'
                            type: string
                          tty:
                            description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                              Default is false.'
                            type: boolean
                          volumeDevices:
                            description: volumeDevices is the list of block devices to be used by the container.
                            items:
                              description: volumeDevice describes a mapping of a raw block device within a container.
                              properties:
                                devicePath:
                                  description: devicePath is the path inside of the container that the device will be mapped to.
                                  type: string
                                name:
                                  description: name must match the name of a persistentVolumeClaim in the pod
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            description: 'Pod volumes to mount into the container''s filesystem.

                              Cannot be updated.'
                            items:
                              description: VolumeMount describes a mounting of a Volume within a container.
                              properties:
                                mountPath:
                                  description: 'Path within the container at which the volume should be mounted.  Must

                                    not contain '':''.'
                                  type: string
                                mountPropagation:
                                  description: 'mountPropagation determines how mounts are propagated from the host

                                    to container and the other way around.

                                    When not set, MountPropagationNone is used.

                                    This field is beta in 1.10.

                                    When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                    (which defaults to None).'
                                  type: string
                                name:
                                  description: This must match the Name of a Volume.
                                  type: string
                                readOnly:
                                  description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                    Defaults to false.'
                                  type: boolean
                                recursiveReadOnly:
                                  description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                    recursively.


                                    If ReadOnly is false, this field has no meaning and must be unspecified.


                                    If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                    recursively read-only.  If this field is set to IfPossible, the mount is made

                                    recursively read-only, if it is supported by the container runtime.  If this

                                    field is set to Enabled, the mount is made recursively read-only if it is

                                    supported by the container runtime, otherwise the pod will not be started and

                                    an error will be generated to indicate the reason.


                                    If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                    None (or be unspecified, which defaults to None).


                                    If this field is not specified, it is treated as an equivalent of Disabled.'
                                  type: string
                                subPath:
                                  description: 'Path within the volume from which the container''s volume should be mounted.

                                    Defaults to "" (volume''s root).'
                                  type: string
                                subPathExpr:
                                  description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                    Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                    Defaults to "" (volume''s root).

                                    SubPathExpr and SubPath are mutually exclusive.'
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            description: 'Container''s working directory.

                              If not specified, the container runtime''s default will be used, which

                              might be configured in the container image.

                              Cannot be updated.'
                            type: string
                        required:
                        - name
                        type: object
                      type: array
                    steps:
                      description: Steps define a series of sequential/parallel workflow steps
                      items:
                        description: 'Note: the `json:"steps"` part exists to workaround kubebuilder limitations.

                          There isn''t actually a "steps" key in the JSON serialization; this is an anonymous list.

                          See the custom Unmarshaller below and ./hack/manifests/crd.go'
                        items:
                          description: 'WorkflowStep is a reference to a template to execute in a series of step

                            Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.'
                          properties:
                            arguments:
                              description: Arguments hold arguments to the template
                              properties:
                                artifacts:
                                  description: Artifacts is the list of artifacts to pass to the template or workflow
                                  items:
                                    description: Artifact indicates an artifact to place at a specified path
                                    properties:
                                      archive:
                                        description: Archive controls how the artifact will be saved to the artifact repository.
                                        properties:
                                          none:
                                            description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                              files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                              save/load the directory appropriately.'
                                            type: object
                                          tar:
                                            description: TarStrategy will tar and gzip the file or directory when saving
                                            properties:
                                              compressionLevel:
                                                description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                  Defaults to gzip.DefaultCompression.'
                                                format: int32
                                                type: integer
                                            type: object
                                          zip:
                                            description: ZipStrategy will unzip zipped input artifacts
                                            type: object
                                        type: object
                                      archiveLogs:
                                        description: ArchiveLogs indicates if the container logs should be archived
                                        type: boolean
                                      artifactGC:
                                        description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                        properties:
                                          podMetadata:
                                            description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                          serviceAccountName:
                                            description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                            type: string
                                          strategy:
                                            description: Strategy is the strategy to use.
                                            enum:
                                            - ''
                                            - OnWorkflowCompletion
                                            - OnWorkflowDeletion
                                            - Never
                                            type: string
                                        type: object
                                      artifactory:
                                        description: Artifactory contains artifactory artifact location details
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          url:
                                            description: URL of the artifact
                                            type: string
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - url
                                        type: object
                                      azure:
                                        description: Azure contains Azure Storage artifact location details
                                        properties:
                                          accountKeySecret:
                                            description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          blob:
                                            description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                            type: string
                                          container:
                                            description: Container is the container where resources will be stored
                                            type: string
                                          endpoint:
                                            description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                            type: string
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        required:
                                        - blob
                                        - container
                                        - endpoint
                                        type: object
                                      deleted:
                                        description: Has this been deleted?
                                        type: boolean
                                      from:
                                        description: From allows an artifact to reference an artifact from a previous step
                                        type: string
                                      fromExpression:
                                        description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                        type: string
                                      gcs:
                                        description: GCS contains GCS artifact location details
                                        properties:
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          key:
                                            description: Key is the path in the bucket where the artifact resides
                                            type: string
                                          serviceAccountKeySecret:
                                            description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - key
                                        type: object
                                      git:
                                        description: Git contains git artifact location details
                                        properties:
                                          branch:
                                            description: Branch is the branch to fetch when `SingleBranch` is enabled
                                            type: string
                                          depth:
                                            description: 'Depth specifies clones/fetches should be shallow and include the given

                                              number of commits from the branch tip'
                                            format: int64
                                            type: integer
                                          disableSubmodules:
                                            description: DisableSubmodules disables submodules during git clone
                                            type: boolean
                                          fetch:
                                            description: Fetch specifies a number of refs that should be fetched before checkout
                                            items:
                                              type: string
                                            type: array
                                          insecureIgnoreHostKey:
                                            description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                            type: boolean
                                          insecureSkipTLS:
                                            description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                            type: boolean
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          repo:
                                            description: Repo is the git repository
                                            type: string
                                          revision:
                                            description: Revision is the git commit, tag, branch to checkout
                                            type: string
                                          singleBranch:
                                            description: SingleBranch enables single branch clone, using the `branch` parameter
                                            type: boolean
                                          sshPrivateKeySecret:
                                            description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - repo
                                        type: object
                                      globalName:
                                        description: 'GlobalName exports an output artifact to the global scope, making it available as

                                          ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                        type: string
                                      hdfs:
                                        description: HDFS contains HDFS artifact location details
                                        properties:
                                          addresses:
                                            description: Addresses is accessible addresses of HDFS name nodes
                                            items:
                                              type: string
                                            type: array
                                          dataTransferProtection:
                                            description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                              It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                            type: string
                                          force:
                                            description: Force copies a file forcibly even if it exists
                                            type: boolean
                                          hdfsUser:
                                            description: 'HDFSUser is the user to access HDFS file system.

                                              It is ignored if either ccache or keytab is used.'
                                            type: string
                                          krbCCacheSecret:
                                            description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                              Either ccache or keytab can be set to use Kerberos.'
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbConfigConfigMap:
                                            description: 'KrbConfig is the configmap selector for Kerberos config as string

                                              It must be set if either ccache or keytab is used.'
                                            properties:
                                              key:
                                                description: The key to select.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the ConfigMap or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbKeytabSecret:
                                            description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                              Either ccache or keytab can be set to use Kerberos.'
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbRealm:
                                            description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                              It must be set if keytab is used.'
                                            type: string
                                          krbServicePrincipalName:
                                            description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                              It must be set if either ccache or keytab is used.'
                                            type: string
                                          krbUsername:
                                            description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                              It must be set if keytab is used.'
                                            type: string
                                          path:
                                            description: Path is a file path in HDFS
                                            type: string
                                        required:
                                        - path
                                        type: object
                                      http:
                                        description: HTTP contains HTTP artifact location details
                                        properties:
                                          auth:
                                            description: Auth contains information for client authentication
                                            properties:
                                              basicAuth:
                                                description: BasicAuth describes the secret selectors required for basic authentication
                                                properties:
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              clientCert:
                                                description: ClientCertAuth holds necessary information for client authentication via certificates
                                                properties:
                                                  clientCertSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientKeySecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              oauth2:
                                                description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                properties:
                                                  clientIDSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientSecretSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  endpointParams:
                                                    items:
                                                      description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                      properties:
                                                        key:
                                                          description: Name is the header name
                                                          type: string
                                                        value:
                                                          description: Value is the literal value to use for the header
                                                          type: string
                                                      required:
                                                      - key
                                                      type: object
                                                    type: array
                                                  scopes:
                                                    items:
                                                      type: string
                                                    type: array
                                                  tokenURLSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                            type: object
                                          headers:
                                            description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                            items:
                                              description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                              properties:
                                                name:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          url:
                                            description: URL of the artifact
                                            type: string
                                        required:
                                        - url
                                        type: object
                                      mode:
                                        description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                          Set when loading input artifacts. It is recommended to set the mode value

                                          to ensure the artifact has the expected permissions in your container.'
                                        format: int32
                                        maximum: 511
                                        minimum: 0
                                        type: integer
                                      name:
                                        description: name of the artifact. must be unique within a template's inputs/outputs.
                                        pattern: ^[-a-zA-Z0-9_{}.]+$
                                        type: string
                                      optional:
                                        description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                        type: boolean
                                      oss:
                                        description: OSS contains OSS artifact location details
                                        properties:
                                          accessKeySecret:
                                            description: AccessKeySecret is the secret selector to the bucket's access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          createBucketIfNotPresent:
                                            description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                            type: boolean
                                          endpoint:
                                            description: Endpoint is the hostname of the bucket endpoint
                                            type: string
                                          key:
                                            description: Key is the path in the bucket where the artifact resides
                                            type: string
                                          lifecycleRule:
                                            description: LifecycleRule specifies how to manage bucket's lifecycle
                                            properties:
                                              markDeletionAfterDays:
                                                description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                format: int32
                                                type: integer
                                              markInfrequentAccessAfterDays:
                                                description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                format: int32
                                                type: integer
                                            type: object
                                          secretKeySecret:
                                            description: SecretKeySecret is the secret selector to the bucket's secret key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          securityToken:
                                            description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                            type: string
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      path:
                                        description: Path is the container path to the artifact
                                        type: string
                                      plugin:
                                        description: Plugin contains plugin artifact location details
                                        properties:
                                          configuration:
                                            description: Configuration is the plugin defined configuration for the artifact driver plugin
                                            type: string
                                          connectionTimeoutSeconds:
                                            description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                            format: int32
                                            type: integer
                                          key:
                                            description: Key is the path in the artifact repository where the artifact resides
                                            type: string
                                          name:
                                            description: Name is the name of the artifact driver plugin
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      raw:
                                        description: Raw contains raw artifact location details
                                        properties:
                                          data:
                                            description: Data is the string contents of the artifact
                                            type: string
                                        required:
                                        - data
                                        type: object
                                      recurseMode:
                                        description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                        type: boolean
                                      s3:
                                        description: S3 contains S3 artifact location details
                                        properties:
                                          accessKeySecret:
                                            description: AccessKeySecret is the secret selector to the bucket's access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          caSecret:
                                            description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          createBucketIfNotPresent:
                                            description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                            properties:
                                              objectLocking:
                                                description: ObjectLocking Enable object locking
                                                type: boolean
                                            type: object
                                          encryptionOptions:
                                            description: S3EncryptionOptions used to determine encryption options during s3 operations
                                            properties:
                                              enableEncryption:
                                                description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                type: boolean
                                              kmsEncryptionContext:
                                                description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                type: string
                                              kmsKeyId:
                                                description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                type: string
                                              serverSideCustomerKeySecret:
                                                description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          endpoint:
                                            description: Endpoint is the hostname of the bucket endpoint
                                            type: string
                                          insecure:
                                            description: Insecure will connect to the service with TLS
                                            type: boolean
                                          key:
                                            description: Key is the key in the bucket where the artifact resides
                                            type: string
                                          region:
                                            description: Region contains the optional bucket region
                                            type: string
                                          roleARN:
                                            description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                            type: string
                                          secretKeySecret:
                                            description: SecretKeySecret is the secret selector to the bucket's secret key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          sessionTokenSecret:
                                            description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        type: object
                                      subPath:
                                        description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                        type: string
                                    required:
                                    - name
                                    type: object
                                    x-kubernetes-validations:
                                    - message: at most one artifact location can be specified
                                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                  type: array
                                parameters:
                                  description: Parameters is the list of parameters to pass to the template or workflow
                                  items:
                                    description: Parameter indicate a passed string parameter to a service template with an optional default value
                                    properties:
                                      default:
                                        description: Default is the default value to use for an input parameter if a value was not supplied
                                        type: string
                                      description:
                                        description: Description is the parameter description
                                        type: string
                                      enum:
                                        description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                        items:
                                          description: '* It''s JSON type is just string.

                                            * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                            * It will marshall back to string - marshalling is not symmetric.'
                                          type: string
                                        minItems: 1
                                        type: array
                                      globalName:
                                        description: 'GlobalName exports an output parameter to the global scope, making it available as

                                          ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                        type: string
                                      name:
                                        description: Name is the parameter name
                                        pattern: ^[-a-zA-Z0-9_]+$
                                        type: string
                                      value:
                                        description: 'Value is the literal value to use for the parameter.

                                          If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                        type: string
                                      valueFrom:
                                        description: ValueFrom is the source for the output parameter's value
                                        properties:
                                          configMapKeyRef:
                                            description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                            properties:
                                              key:
                                                description: The key to select.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the ConfigMap or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          default:
                                            description: Default specifies a value to be used if retrieving the value from the specified source fails
                                            type: string
                                          event:
                                            description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                            type: string
                                          expression:
                                            description: Expression, if defined, is evaluated to specify the value for the parameter
                                            type: string
                                          jqFilter:
                                            description: JQFilter expression against the resource object in resource templates
                                            type: string
                                          jsonPath:
                                            description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                            type: string
                                          parameter:
                                            description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                              (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                            type: string
                                          path:
                                            description: Path in the container to retrieve an output parameter value from in container templates
                                            type: string
                                          supplied:
                                            description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                            type: object
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  type: array
                              type: object
                            continueOn:
                              description: 'ContinueOn makes argo to proceed with the following step even if this step fails.

                                Errors and Failed states can be specified'
                              properties:
                                error:
                                  type: boolean
                                failed:
                                  type: boolean
                              type: object
                            hooks:
                              additionalProperties:
                                properties:
                                  arguments:
                                    description: Arguments hold arguments to the template
                                    properties:
                                      artifacts:
                                        description: Artifacts is the list of artifacts to pass to the template or workflow
                                        items:
                                          description: Artifact indicates an artifact to place at a specified path
                                          properties:
                                            archive:
                                              description: Archive controls how the artifact will be saved to the artifact repository.
                                              properties:
                                                none:
                                                  description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                    files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                    save/load the directory appropriately.'
                                                  type: object
                                                tar:
                                                  description: TarStrategy will tar and gzip the file or directory when saving
                                                  properties:
                                                    compressionLevel:
                                                      description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                        Defaults to gzip.DefaultCompression.'
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                zip:
                                                  description: ZipStrategy will unzip zipped input artifacts
                                                  type: object
                                              type: object
                                            archiveLogs:
                                              description: ArchiveLogs indicates if the container logs should be archived
                                              type: boolean
                                            artifactGC:
                                              description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                              properties:
                                                podMetadata:
                                                  description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                serviceAccountName:
                                                  description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                  type: string
                                                strategy:
                                                  description: Strategy is the strategy to use.
                                                  enum:
                                                  - ''
                                                  - OnWorkflowCompletion
                                                  - OnWorkflowDeletion
                                                  - Never
                                                  type: string
                                              type: object
                                            artifactory:
                                              description: Artifactory contains artifactory artifact location details
                                              properties:
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                url:
                                                  description: URL of the artifact
                                                  type: string
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - url
                                              type: object
                                            azure:
                                              description: Azure contains Azure Storage artifact location details
                                              properties:
                                                accountKeySecret:
                                                  description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                blob:
                                                  description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                  type: string
                                                container:
                                                  description: Container is the container where resources will be stored
                                                  type: string
                                                endpoint:
                                                  description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                  type: string
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              required:
                                              - blob
                                              - container
                                              - endpoint
                                              type: object
                                            deleted:
                                              description: Has this been deleted?
                                              type: boolean
                                            from:
                                              description: From allows an artifact to reference an artifact from a previous step
                                              type: string
                                            fromExpression:
                                              description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                              type: string
                                            gcs:
                                              description: GCS contains GCS artifact location details
                                              properties:
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                key:
                                                  description: Key is the path in the bucket where the artifact resides
                                                  type: string
                                                serviceAccountKeySecret:
                                                  description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - key
                                              type: object
                                            git:
                                              description: Git contains git artifact location details
                                              properties:
                                                branch:
                                                  description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                  type: string
                                                depth:
                                                  description: 'Depth specifies clones/fetches should be shallow and include the given

                                                    number of commits from the branch tip'
                                                  format: int64
                                                  type: integer
                                                disableSubmodules:
                                                  description: DisableSubmodules disables submodules during git clone
                                                  type: boolean
                                                fetch:
                                                  description: Fetch specifies a number of refs that should be fetched before checkout
                                                  items:
                                                    type: string
                                                  type: array
                                                insecureIgnoreHostKey:
                                                  description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                  type: boolean
                                                insecureSkipTLS:
                                                  description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                  type: boolean
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                repo:
                                                  description: Repo is the git repository
                                                  type: string
                                                revision:
                                                  description: Revision is the git commit, tag, branch to checkout
                                                  type: string
                                                singleBranch:
                                                  description: SingleBranch enables single branch clone, using the `branch` parameter
                                                  type: boolean
                                                sshPrivateKeySecret:
                                                  description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - repo
                                              type: object
                                            globalName:
                                              description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                              type: string
                                            hdfs:
                                              description: HDFS contains HDFS artifact location details
                                              properties:
                                                addresses:
                                                  description: Addresses is accessible addresses of HDFS name nodes
                                                  items:
                                                    type: string
                                                  type: array
                                                dataTransferProtection:
                                                  description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                    It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                  type: string
                                                force:
                                                  description: Force copies a file forcibly even if it exists
                                                  type: boolean
                                                hdfsUser:
                                                  description: 'HDFSUser is the user to access HDFS file system.

                                                    It is ignored if either ccache or keytab is used.'
                                                  type: string
                                                krbCCacheSecret:
                                                  description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                    Either ccache or keytab can be set to use Kerberos.'
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbConfigConfigMap:
                                                  description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                    It must be set if either ccache or keytab is used.'
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the ConfigMap or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbKeytabSecret:
                                                  description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                    Either ccache or keytab can be set to use Kerberos.'
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbRealm:
                                                  description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                    It must be set if keytab is used.'
                                                  type: string
                                                krbServicePrincipalName:
                                                  description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                    It must be set if either ccache or keytab is used.'
                                                  type: string
                                                krbUsername:
                                                  description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                    It must be set if keytab is used.'
                                                  type: string
                                                path:
                                                  description: Path is a file path in HDFS
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                            http:
                                              description: HTTP contains HTTP artifact location details
                                              properties:
                                                auth:
                                                  description: Auth contains information for client authentication
                                                  properties:
                                                    basicAuth:
                                                      description: BasicAuth describes the secret selectors required for basic authentication
                                                      properties:
                                                        passwordSecret:
                                                          description: PasswordSecret is the secret selector to the repository password
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        usernameSecret:
                                                          description: UsernameSecret is the secret selector to the repository username
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    clientCert:
                                                      description: ClientCertAuth holds necessary information for client authentication via certificates
                                                      properties:
                                                        clientCertSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientKeySecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    oauth2:
                                                      description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                      properties:
                                                        clientIDSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientSecretSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        endpointParams:
                                                          items:
                                                            description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                            properties:
                                                              key:
                                                                description: Name is the header name
                                                                type: string
                                                              value:
                                                                description: Value is the literal value to use for the header
                                                                type: string
                                                            required:
                                                            - key
                                                            type: object
                                                          type: array
                                                        scopes:
                                                          items:
                                                            type: string
                                                          type: array
                                                        tokenURLSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                  type: object
                                                headers:
                                                  description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                  items:
                                                    description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                    properties:
                                                      name:
                                                        description: Name is the header name
                                                        type: string
                                                      value:
                                                        description: Value is the literal value to use for the header
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                url:
                                                  description: URL of the artifact
                                                  type: string
                                              required:
                                              - url
                                              type: object
                                            mode:
                                              description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                Set when loading input artifacts. It is recommended to set the mode value

                                                to ensure the artifact has the expected permissions in your container.'
                                              format: int32
                                              maximum: 511
                                              minimum: 0
                                              type: integer
                                            name:
                                              description: name of the artifact. must be unique within a template's inputs/outputs.
                                              pattern: ^[-a-zA-Z0-9_{}.]+$
                                              type: string
                                            optional:
                                              description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                              type: boolean
                                            oss:
                                              description: OSS contains OSS artifact location details
                                              properties:
                                                accessKeySecret:
                                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                createBucketIfNotPresent:
                                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                  type: boolean
                                                endpoint:
                                                  description: Endpoint is the hostname of the bucket endpoint
                                                  type: string
                                                key:
                                                  description: Key is the path in the bucket where the artifact resides
                                                  type: string
                                                lifecycleRule:
                                                  description: LifecycleRule specifies how to manage bucket's lifecycle
                                                  properties:
                                                    markDeletionAfterDays:
                                                      description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                      format: int32
                                                      type: integer
                                                    markInfrequentAccessAfterDays:
                                                      description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                secretKeySecret:
                                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                securityToken:
                                                  description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                  type: string
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            path:
                                              description: Path is the container path to the artifact
                                              type: string
                                            plugin:
                                              description: Plugin contains plugin artifact location details
                                              properties:
                                                configuration:
                                                  description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                  type: string
                                                connectionTimeoutSeconds:
                                                  description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                  format: int32
                                                  type: integer
                                                key:
                                                  description: Key is the path in the artifact repository where the artifact resides
                                                  type: string
                                                name:
                                                  description: Name is the name of the artifact driver plugin
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            raw:
                                              description: Raw contains raw artifact location details
                                              properties:
                                                data:
                                                  description: Data is the string contents of the artifact
                                                  type: string
                                              required:
                                              - data
                                              type: object
                                            recurseMode:
                                              description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                              type: boolean
                                            s3:
                                              description: S3 contains S3 artifact location details
                                              properties:
                                                accessKeySecret:
                                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                caSecret:
                                                  description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                createBucketIfNotPresent:
                                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                  properties:
                                                    objectLocking:
                                                      description: ObjectLocking Enable object locking
                                                      type: boolean
                                                  type: object
                                                encryptionOptions:
                                                  description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                  properties:
                                                    enableEncryption:
                                                      description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                      type: boolean
                                                    kmsEncryptionContext:
                                                      description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                      type: string
                                                    kmsKeyId:
                                                      description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                      type: string
                                                    serverSideCustomerKeySecret:
                                                      description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                endpoint:
                                                  description: Endpoint is the hostname of the bucket endpoint
                                                  type: string
                                                insecure:
                                                  description: Insecure will connect to the service with TLS
                                                  type: boolean
                                                key:
                                                  description: Key is the key in the bucket where the artifact resides
                                                  type: string
                                                region:
                                                  description: Region contains the optional bucket region
                                                  type: string
                                                roleARN:
                                                  description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                  type: string
                                                secretKeySecret:
                                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                sessionTokenSecret:
                                                  description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              type: object
                                            subPath:
                                              description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                              type: string
                                          required:
                                          - name
                                          type: object
                                          x-kubernetes-validations:
                                          - message: at most one artifact location can be specified
                                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                        type: array
                                      parameters:
                                        description: Parameters is the list of parameters to pass to the template or workflow
                                        items:
                                          description: Parameter indicate a passed string parameter to a service template with an optional default value
                                          properties:
                                            default:
                                              description: Default is the default value to use for an input parameter if a value was not supplied
                                              type: string
                                            description:
                                              description: Description is the parameter description
                                              type: string
                                            enum:
                                              description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                              items:
                                                description: '* It''s JSON type is just string.

                                                  * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                  * It will marshall back to string - marshalling is not symmetric.'
                                                type: string
                                              minItems: 1
                                              type: array
                                            globalName:
                                              description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                              type: string
                                            name:
                                              description: Name is the parameter name
                                              pattern: ^[-a-zA-Z0-9_]+$
                                              type: string
                                            value:
                                              description: 'Value is the literal value to use for the parameter.

                                                If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                              type: string
                                            valueFrom:
                                              description: ValueFrom is the source for the output parameter's value
                                              properties:
                                                configMapKeyRef:
                                                  description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the ConfigMap or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                default:
                                                  description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                  type: string
                                                event:
                                                  description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                  type: string
                                                expression:
                                                  description: Expression, if defined, is evaluated to specify the value for the parameter
                                                  type: string
                                                jqFilter:
                                                  description: JQFilter expression against the resource object in resource templates
                                                  type: string
                                                jsonPath:
                                                  description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                  type: string
                                                parameter:
                                                  description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                    (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                  type: string
                                                path:
                                                  description: Path in the container to retrieve an output parameter value from in container templates
                                                  type: string
                                                supplied:
                                                  description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                  type: object
                                              type: object
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                                  expression:
                                    description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                      be retried and the retry strategy will be ignored'
                                    type: string
                                  template:
                                    description: Template is the name of the template to execute by the hook
                                    type: string
                                  templateRef:
                                    description: TemplateRef is the reference to the template resource to execute by the hook
                                    properties:
                                      clusterScope:
                                        description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                        type: boolean
                                      name:
                                        description: Name is the resource name of the template.
                                        type: string
                                      template:
                                        description: Template is the name of referred template in the resource.
                                        type: string
                                    type: object
                                type: object
                              description: 'Hooks holds the lifecycle hook which is invoked at lifecycle of

                                step, irrespective of the success, failure, or error status of the primary step'
                              type: object
                            inline:
                              description: 'Inline is the template. Template must be empty if this is declared (and vice-versa).

                                Note: This struct is defined recursively, since the inline template can potentially contain

                                steps/DAGs that also has an "inline" field. Kubernetes doesn''t allow recursive types, so we

                                need "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              description: Name of the step
                              maxLength: 128
                              pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                              type: string
                            onExit:
                              description: 'OnExit is a template reference which is invoked at the end of the

                                template, irrespective of the success, failure, or error of the

                                primary template.

                                DEPRECATED: Use Hooks[exit].Template instead.'
                              type: string
                            template:
                              description: Template is the name of the template to execute as the step
                              type: string
                            templateRef:
                              description: TemplateRef is the reference to the template resource to execute as the step.
                              properties:
                                clusterScope:
                                  description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                  type: boolean
                                name:
                                  description: Name is the resource name of the template.
                                  type: string
                                template:
                                  description: Template is the name of referred template in the resource.
                                  type: string
                              type: object
                            when:
                              description: When is an expression in which the step should conditionally execute
                              type: string
                            withItems:
                              description: 'WithItems expands a step into multiple parallel steps from the items in the list

                                Note: The structure of WithItems is free-form, so we need

                                "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                              x-kubernetes-preserve-unknown-fields: true
                            withParam:
                              description: 'WithParam expands a step into multiple parallel steps from the value in the parameter,

                                which is expected to be a JSON list.'
                              type: string
                            withSequence:
                              description: WithSequence expands a step into a numeric sequence
                              properties:
                                count:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Count is number of elements in the sequence (default: 0). Not to be used with end'
                                  x-kubernetes-int-or-string: true
                                end:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number at which to end the sequence (default: 0). Not to be used with Count'
                                  x-kubernetes-int-or-string: true
                                format:
                                  description: Format is a printf format string to format the value in the sequence
                                  type: string
                                start:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number at which to start the sequence (default: 0)'
                                  x-kubernetes-int-or-string: true
                              type: object
                              x-kubernetes-validations:
                              - message: only one of count or end can be defined
                                rule: '!(has(self.count) && has(self.end))'
                          type: object
                        type: array
                      minItems: 1
                      type: array
                    suspend:
                      description: Suspend template subtype which can suspend a workflow when reaching the step
                      properties:
                        duration:
                          description: 'Duration is the seconds to wait before automatically resuming a template. Must be a string. Default unit is seconds.

                            Could also be a Duration, e.g.: "2m", "6h"'
                          type: string
                      type: object
                    synchronization:
                      description: Synchronization holds synchronization lock configuration for this template
                      properties:
                        mutexes:
                          description: 'v3.6 and after: Mutexes holds the list of Mutex lock details'
                          items:
                            description: Mutex holds Mutex configuration
                            properties:
                              database:
                                description: Database specifies this is database controlled if this is set true
                                type: boolean
                              name:
                                description: name of the mutex
                                type: string
                              namespace:
                                description: 'Namespace is the namespace of the mutex, default: [namespace of workflow]'
                                type: string
                            type: object
                          type: array
                        semaphores:
                          description: 'v3.6 and after: Semaphores holds the list of Semaphores configuration'
                          items:
                            description: SemaphoreRef is a reference of Semaphore
                            properties:
                              configMapKeyRef:
                                description: ConfigMapKeyRef is a configmap selector for Semaphore configuration
                                properties:
                                  key:
                                    description: The key to select.
                                    type: string
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap or its key must be defined
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              database:
                                description: SyncDatabaseRef is a database reference for Semaphore configuration
                                properties:
                                  key:
                                    type: string
                                required:
                                - key
                                type: object
                              namespace:
                                description: 'Namespace is the namespace of the configmap, default: [namespace of workflow]'
                                type: string
                            type: object
                          type: array
                      type: object
                    timeout:
                      description: 'Timeout allows to set the total node execution timeout duration counting from the node''s start time.

                        This duration also includes time in which the node spends in Pending state. This duration may not be applied to Step or DAG templates.'
                      type: string
                    tolerations:
                      description: Tolerations to apply to workflow pods.
                      items:
                        description: 'The pod this Toleration is attached to tolerates any taint that matches

                          the triple <key,value,effect> using the matching operator <operator>.'
                        properties:
                          effect:
                            description: 'Effect indicates the taint effect to match. Empty means match all taint effects.

                              When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.'
                            type: string
                          key:
                            description: 'Key is the taint key that the toleration applies to. Empty means match all taint keys.

                              If the key is empty, operator must be Exists; this combination means to match all values and all keys.'
                            type: string
                          operator:
                            description: 'Operator represents a key''s relationship to the value.

                              Valid operators are Exists and Equal. Defaults to Equal.

                              Exists is equivalent to wildcard for value, so that a pod can

                              tolerate all taints of a particular category.'
                            type: string
                          tolerationSeconds:
                            description: 'TolerationSeconds represents the period of time the toleration (which must be

                              of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,

                              it is not set, which means tolerate the taint forever (do not evict). Zero and

                              negative values will be treated as 0 (evict immediately) by the system.'
                            format: int64
                            type: integer
                          value:
                            description: 'Value is the taint value the toleration matches to.

                              If the operator is Exists, the value should be empty, otherwise just a regular string.'
                            type: string
                        type: object
                      type: array
                    volumes:
                      description: Volumes is a list of volumes that can be mounted by containers in a template.
                      items:
                        description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
                        properties:
                          awsElasticBlockStore:
                            description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree

                              awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: string
                              partition:
                                description: 'partition is the partition in the volume that you want to mount.

                                  If omitted, the default is to mount by volume name.

                                  Examples: For volume /dev/sda1, you specify the partition as "1".

                                  Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
                                format: int32
                                type: integer
                              readOnly:
                                description: 'readOnly value true will force the readOnly setting in VolumeMounts.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: boolean
                              volumeID:
                                description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: string
                            required:
                            - volumeID
                            type: object
                          azureDisk:
                            description: 'azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

                              Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type

                              are redirected to the disk.csi.azure.com CSI driver.'
                            properties:
                              cachingMode:
                                description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                                type: string
                              diskName:
                                description: diskName is the Name of the data disk in the blob storage
                                type: string
                              diskURI:
                                description: diskURI is the URI of data disk in the blob storage
                                type: string
                              fsType:
                                default: ext4
                                description: 'fsType is Filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              kind:
                                description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
                                type: string
                              readOnly:
                                default: false
                                description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                            required:
                            - diskName
                            - diskURI
                            type: object
                          azureFile:
                            description: 'azureFile represents an Azure File Service mount on the host and bind mount to the pod.

                              Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type

                              are redirected to the file.csi.azure.com CSI driver.'
                            properties:
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretName:
                                description: secretName is the  name of secret that contains Azure Storage Account Name and Key
                                type: string
                              shareName:
                                description: shareName is the azure share Name
                                type: string
                            required:
                            - secretName
                            - shareName
                            type: object
                          cephfs:
                            description: 'cephFS represents a Ceph FS mount on the host that shares a pod''s lifetime.

                              Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.'
                            properties:
                              monitors:
                                description: 'monitors is Required: Monitors is a collection of Ceph monitors

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
                                type: string
                              readOnly:
                                description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: boolean
                              secretFile:
                                description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: string
                              secretRef:
                                description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              user:
                                description: 'user is optional: User is the rados user name, default is admin

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: string
                            required:
                            - monitors
                            type: object
                          cinder:
                            description: 'cinder represents a cinder volume attached and mounted on kubelets host machine.

                              Deprecated: Cinder is deprecated. All operations for the in-tree cinder type

                              are redirected to the cinder.csi.openstack.org CSI driver.

                              More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: boolean
                              secretRef:
                                description: 'secretRef is optional: points to a secret object containing parameters used to connect

                                  to OpenStack.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              volumeID:
                                description: 'volumeID used to identify the volume in cinder.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: string
                            required:
                            - volumeID
                            type: object
                          configMap:
                            description: configMap represents a configMap that should populate this volume
                            properties:
                              defaultMode:
                                description: 'defaultMode is optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                  ConfigMap will be projected into the volume as a file whose name is the

                                  key and content is the value. If specified, the listed keys will be

                                  projected into the specified paths, and unlisted keys will not be

                                  present. If a key is specified which is not present in the ConfigMap,

                                  the volume setup will error unless it is marked optional. Paths must be

                                  relative and may not contain the ''..'' path or start with ''..''.'
                                items:
                                  description: Maps a string key to a path within a volume.
                                  properties:
                                    key:
                                      description: key is the key to project.
                                      type: string
                                    mode:
                                      description: 'mode is Optional: mode bits used to set permissions on this file.

                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'path is the relative path of the file to map the key to.

                                        May not be an absolute path.

                                        May not contain the path element ''..''.

                                        May not start with the string ''..''.'
                                      type: string
                                  required:
                                  - key
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              name:
                                default: ''
                                description: 'Name of the referent.

                                  This field is effectively required, but due to backwards compatibility is

                                  allowed to be empty. Instances of this type with an empty value here are

                                  almost certainly wrong.

                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                              optional:
                                description: optional specify whether the ConfigMap or its keys must be defined
                                type: boolean
                            type: object
                            x-kubernetes-map-type: atomic
                          csi:
                            description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
                            properties:
                              driver:
                                description: 'driver is the name of the CSI driver that handles this volume.

                                  Consult with your admin for the correct name as registered in the cluster.'
                                type: string
                              fsType:
                                description: 'fsType to mount. Ex. "ext4", "xfs", "ntfs".

                                  If not provided, the empty value is passed to the associated CSI driver

                                  which will determine the default filesystem to apply.'
                                type: string
                              nodePublishSecretRef:
                                description: 'nodePublishSecretRef is a reference to the secret object containing

                                  sensitive information to pass to the CSI driver to complete the CSI

                                  NodePublishVolume and NodeUnpublishVolume calls.

                                  This field is optional, and  may be empty if no secret is required. If the

                                  secret object contains more than one secret, all secret references are passed.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              readOnly:
                                description: 'readOnly specifies a read-only configuration for the volume.

                                  Defaults to false (read/write).'
                                type: boolean
                              volumeAttributes:
                                additionalProperties:
                                  type: string
                                description: 'volumeAttributes stores driver-specific properties that are passed to the CSI

                                  driver. Consult your driver''s documentation for supported values.'
                                type: object
                            required:
                            - driver
                            type: object
                          downwardAPI:
                            description: downwardAPI represents downward API about the pod that should populate this volume
                            properties:
                              defaultMode:
                                description: 'Optional: mode bits to use on created files by default. Must be a

                                  Optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: Items is a list of downward API volume file
                                items:
                                  description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                  properties:
                                    fieldRef:
                                      description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    mode:
                                      description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                        between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                      type: string
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          emptyDir:
                            description: 'emptyDir represents a temporary directory that shares a pod''s lifetime.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                            properties:
                              medium:
                                description: 'medium represents what type of storage medium should back this directory.

                                  The default is "" which means to use the node''s default medium.

                                  Must be an empty string (default) or Memory.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                type: string
                              sizeLimit:
                                anyOf:
                                - type: integer
                                - type: string
                                description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume.

                                  The size limit is also applicable for memory medium.

                                  The maximum usage on memory medium EmptyDir would be the minimum value between

                                  the SizeLimit specified here and the sum of memory limits of all containers in a pod.

                                  The default is nil which means that the limit is undefined.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          ephemeral:
                            description: "ephemeral represents a volume that is handled by a cluster storage driver.\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n   tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\n   information on the connection between this volume type\n   and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time."
                            properties:
                              volumeClaimTemplate:
                                description: 'Will be used to create a stand-alone PVC to provision the volume.

                                  The pod in which this EphemeralVolumeSource is embedded will be the

                                  owner of the PVC, i.e. the PVC will be deleted together with the

                                  pod.  The name of the PVC will be `<pod name>-<volume name>` where

                                  `<volume name>` is the name from the `PodSpec.Volumes` array

                                  entry. Pod validation will reject the pod if the concatenated name

                                  is not valid for a PVC (for example, too long).


                                  An existing PVC with that name that is not owned by the pod

                                  will *not* be used for the pod to avoid using an unrelated

                                  volume by mistake. Starting the pod is then blocked until

                                  the unrelated PVC is removed. If such a pre-created PVC is

                                  meant to be used by the pod, the PVC has to updated with an

                                  owner reference to the pod once the pod exists. Normally

                                  this should not be necessary, but it may be useful when

                                  manually reconstructing a broken cluster.


                                  This field is read-only and no changes will be made by Kubernetes

                                  to the PVC after it has been created.


                                  Required, must not be nil.'
                                properties:
                                  metadata:
                                    description: 'May contain labels and annotations that will be copied into the PVC

                                      when creating it. No other fields are allowed and will be rejected during

                                      validation.'
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      finalizers:
                                        items:
                                          type: string
                                        type: array
                                      generateName:
                                        type: string
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      name:
                                        type: string
                                      namespace:
                                        type: string
                                    type: object
                                  spec:
                                    description: 'The specification for the PersistentVolumeClaim. The entire content is

                                      copied unchanged into the PVC that gets created from this

                                      template. The same fields as in a PersistentVolumeClaim

                                      are also valid here.'
                                    properties:
                                      accessModes:
                                        description: 'accessModes contains the desired access modes the volume should have.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      dataSource:
                                        description: 'dataSource field can be used to specify either:

                                          * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                          * An existing PVC (PersistentVolumeClaim)

                                          If the provisioner or an external controller can support the specified data source,

                                          it will create a new volume based on the contents of the specified data source.

                                          When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                          and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                          If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                        properties:
                                          apiGroup:
                                            description: 'APIGroup is the group for the resource being referenced.

                                              If APIGroup is not specified, the specified Kind must be in the core API group.

                                              For any other third-party types, APIGroup is required.'
                                            type: string
                                          kind:
                                            description: Kind is the type of resource being referenced
                                            type: string
                                          name:
                                            description: Name is the name of resource being referenced
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      dataSourceRef:
                                        description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                                        properties:
                                          apiGroup:
                                            description: 'APIGroup is the group for the resource being referenced.

                                              If APIGroup is not specified, the specified Kind must be in the core API group.

                                              For any other third-party types, APIGroup is required.'
                                            type: string
                                          kind:
                                            description: Kind is the type of resource being referenced
                                            type: string
                                          name:
                                            description: Name is the name of resource being referenced
                                            type: string
                                          namespace:
                                            description: 'Namespace is the namespace of resource being referenced

                                              Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                              (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                      resources:
                                        description: 'resources represents the minimum resources the volume should have.

                                          If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                          that are lower than previous value but must still be higher than capacity recorded in the

                                          status field of the claim.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                        properties:
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Limits describes the maximum amount of compute resources allowed.

                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Requests describes the minimum amount of compute resources required.

                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                        type: object
                                      selector:
                                        description: selector is a label query over volumes to consider for binding.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      storageClassName:
                                        description: 'storageClassName is the name of the StorageClass required by the claim.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                        type: string
                                      volumeAttributesClassName:
                                        description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                          If specified, the CSI driver will create or update the volume with the attributes defined

                                          in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                          it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                          will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                          If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                          will be set by the persistentvolume controller if it exists.

                                          If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                          set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                          exists.

                                          More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                          (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                                        type: string
                                      volumeMode:
                                        description: 'volumeMode defines what type of volume is required by the claim.

                                          Value of Filesystem is implied when not included in claim spec.'
                                        type: string
                                      volumeName:
                                        description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                        type: string
                                    type: object
                                required:
                                - spec
                                type: object
                            type: object
                          fc:
                            description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              lun:
                                description: 'lun is Optional: FC target lun number'
                                format: int32
                                type: integer
                              readOnly:
                                description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              targetWWNs:
                                description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              wwids:
                                description: 'wwids Optional: FC volume world wide identifiers (wwids)

                                  Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          flexVolume:
                            description: 'flexVolume represents a generic volume resource that is

                              provisioned/attached using an exec based plugin.

                              Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.'
                            properties:
                              driver:
                                description: driver is the name of the driver to use for this volume.
                                type: string
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.'
                                type: string
                              options:
                                additionalProperties:
                                  type: string
                                description: 'options is Optional: this field holds extra command options if any.'
                                type: object
                              readOnly:
                                description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef is Optional: secretRef is reference to the secret object containing

                                  sensitive information to pass to the plugin scripts. This may be

                                  empty if no secret object is specified. If the secret object

                                  contains more than one secret, all secrets are passed to the plugin

                                  scripts.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - driver
                            type: object
                          flocker:
                            description: 'flocker represents a Flocker volume attached to a kubelet''s host machine. This depends on the Flocker control service being running.

                              Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.'
                            properties:
                              datasetName:
                                description: 'datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker

                                  should be considered as deprecated'
                                type: string
                              datasetUUID:
                                description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
                                type: string
                            type: object
                          gcePersistentDisk:
                            description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree

                              gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                            properties:
                              fsType:
                                description: 'fsType is filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: string
                              partition:
                                description: 'partition is the partition in the volume that you want to mount.

                                  If omitted, the default is to mount by volume name.

                                  Examples: For volume /dev/sda1, you specify the partition as "1".

                                  Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                format: int32
                                type: integer
                              pdName:
                                description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: boolean
                            required:
                            - pdName
                            type: object
                          gitRepo:
                            description: 'gitRepo represents a git repository at a particular revision.

                              Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an

                              EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir

                              into the Pod''s container.'
                            properties:
                              directory:
                                description: 'directory is the target directory name.

                                  Must not contain or start with ''..''.  If ''.'' is supplied, the volume directory will be the

                                  git repository.  Otherwise, if specified, the volume will contain the git repository in

                                  the subdirectory with the given name.'
                                type: string
                              repository:
                                description: repository is the URL
                                type: string
                              revision:
                                description: revision is the commit hash for the specified revision.
                                type: string
                            required:
                            - repository
                            type: object
                          glusterfs:
                            description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime.

                              Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.

                              More info: https://examples.k8s.io/volumes/glusterfs/README.md'
                            properties:
                              endpoints:
                                description: 'endpoints is the endpoint name that details Glusterfs topology.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: string
                              path:
                                description: 'path is the Glusterfs volume path.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions.

                                  Defaults to false.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: boolean
                            required:
                            - endpoints
                            - path
                            type: object
                          hostPath:
                            description: 'hostPath represents a pre-existing file or directory on the host

                              machine that is directly exposed to the container. This is generally

                              used for system agents or other privileged things that are allowed

                              to see the host machine. Most containers will NOT need this.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                            properties:
                              path:
                                description: 'path of the directory on the host.

                                  If the path is a symlink, it will follow the link to the real path.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                type: string
                              type:
                                description: 'type for HostPath Volume

                                  Defaults to ""

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                type: string
                            required:
                            - path
                            type: object
                          image:
                            description: 'image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet''s host machine.

                              The volume is resolved at pod startup depending on which PullPolicy value is provided:


                              - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                              - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                              - IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.


                              The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.

                              A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.

                              The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.

                              The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.

                              The volume will be mounted read-only (ro) and non-executable files (noexec).

                              Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.

                              The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.'
                            properties:
                              pullPolicy:
                                description: 'Policy for pulling OCI objects. Possible values are:

                                  Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                                  Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                                  IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.

                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.'
                                type: string
                              reference:
                                description: 'Required: Image or artifact reference to be used.

                                  Behaves in the same way as pod.spec.containers[*].image.

                                  Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.

                                  More info: https://kubernetes.io/docs/concepts/containers/images

                                  This field is optional to allow higher level config management to default or override

                                  container images in workload controllers like Deployments and StatefulSets.'
                                type: string
                            type: object
                          iscsi:
                            description: 'iscsi represents an ISCSI Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              More info: https://examples.k8s.io/volumes/iscsi/README.md'
                            properties:
                              chapAuthDiscovery:
                                description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
                                type: boolean
                              chapAuthSession:
                                description: chapAuthSession defines whether support iSCSI Session CHAP authentication
                                type: boolean
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi'
                                type: string
                              initiatorName:
                                description: 'initiatorName is the custom iSCSI Initiator Name.

                                  If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface

                                  <target portal>:<volume name> will be created for the connection.'
                                type: string
                              iqn:
                                description: iqn is the target iSCSI Qualified Name.
                                type: string
                              iscsiInterface:
                                default: default
                                description: 'iscsiInterface is the interface Name that uses an iSCSI transport.

                                  Defaults to ''default'' (tcp).'
                                type: string
                              lun:
                                description: lun represents iSCSI Target Lun number.
                                format: int32
                                type: integer
                              portals:
                                description: 'portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port

                                  is other than default (typically TCP ports 860 and 3260).'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.'
                                type: boolean
                              secretRef:
                                description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              targetPortal:
                                description: 'targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port

                                  is other than default (typically TCP ports 860 and 3260).'
                                type: string
                            required:
                            - iqn
                            - lun
                            - targetPortal
                            type: object
                          name:
                            description: 'name of the volume.

                              Must be a DNS_LABEL and unique within the pod.

                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                          nfs:
                            description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                            properties:
                              path:
                                description: 'path that is exported by the NFS server.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the NFS export to be mounted with read-only permissions.

                                  Defaults to false.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: boolean
                              server:
                                description: 'server is the hostname or IP address of the NFS server.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: string
                            required:
                            - path
                            - server
                            type: object
                          persistentVolumeClaim:
                            description: 'persistentVolumeClaimVolumeSource represents a reference to a

                              PersistentVolumeClaim in the same namespace.

                              More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                            properties:
                              claimName:
                                description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.

                                  More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                                type: string
                              readOnly:
                                description: 'readOnly Will force the ReadOnly setting in VolumeMounts.

                                  Default false.'
                                type: boolean
                            required:
                            - claimName
                            type: object
                          photonPersistentDisk:
                            description: 'photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.

                              Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              pdID:
                                description: pdID is the ID that identifies Photon Controller persistent disk
                                type: string
                            required:
                            - pdID
                            type: object
                          portworxVolume:
                            description: 'portworxVolume represents a portworx volume attached and mounted on kubelets host machine.

                              Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type

                              are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate

                              is on.'
                            properties:
                              fsType:
                                description: 'fSType represents the filesystem type to mount

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              volumeID:
                                description: volumeID uniquely identifies a Portworx volume
                                type: string
                            required:
                            - volumeID
                            type: object
                          projected:
                            description: projected items for all in one resources secrets, configmaps, and downward API
                            properties:
                              defaultMode:
                                description: 'defaultMode are the mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              sources:
                                description: 'sources is the list of volume projections. Each entry in this list

                                  handles one source.'
                                items:
                                  description: 'Projection that may be projected along with other supported volume types.

                                    Exactly one of these fields must be set.'
                                  properties:
                                    clusterTrustBundle:
                                      description: 'ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field

                                        of ClusterTrustBundle objects in an auto-updating file.


                                        Alpha, gated by the ClusterTrustBundleProjection feature gate.


                                        ClusterTrustBundle objects can either be selected by name, or by the

                                        combination of signer name and a label selector.


                                        Kubelet performs aggressive normalization of the PEM contents written

                                        into the pod filesystem.  Esoteric PEM features such as inter-block

                                        comments and block headers are stripped.  Certificates are deduplicated.

                                        The ordering of certificates within the file is arbitrary, and Kubelet

                                        may change the order over time.'
                                      properties:
                                        labelSelector:
                                          description: 'Select all ClusterTrustBundles that match this label selector.  Only has

                                            effect if signerName is set.  Mutually-exclusive with name.  If unset,

                                            interpreted as "match nothing".  If set but empty, interpreted as "match

                                            everything".'
                                          properties:
                                            matchExpressions:
                                              description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                              items:
                                                description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                  relates the key and values.'
                                                properties:
                                                  key:
                                                    description: key is the label key that the selector applies to.
                                                    type: string
                                                  operator:
                                                    description: 'operator represents a key''s relationship to a set of values.

                                                      Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                    type: string
                                                  values:
                                                    description: 'values is an array of string values. If the operator is In or NotIn,

                                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                      the values array must be empty. This array is replaced during a strategic

                                                      merge patch.'
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        name:
                                          description: 'Select a single ClusterTrustBundle by object name.  Mutually-exclusive

                                            with signerName and labelSelector.'
                                          type: string
                                        optional:
                                          description: 'If true, don''t block pod startup if the referenced ClusterTrustBundle(s)

                                            aren''t available.  If using name, then the named ClusterTrustBundle is

                                            allowed not to exist.  If using signerName, then the combination of

                                            signerName and labelSelector is allowed to match zero

                                            ClusterTrustBundles.'
                                          type: boolean
                                        path:
                                          description: Relative path from the volume root to write the bundle.
                                          type: string
                                        signerName:
                                          description: 'Select all ClusterTrustBundles that match this signer name.

                                            Mutually-exclusive with name.  The contents of all selected

                                            ClusterTrustBundles will be unified and deduplicated.'
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    configMap:
                                      description: configMap information about the configMap data to project
                                      properties:
                                        items:
                                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                            ConfigMap will be projected into the volume as a file whose name is the

                                            key and content is the value. If specified, the listed keys will be

                                            projected into the specified paths, and unlisted keys will not be

                                            present. If a key is specified which is not present in the ConfigMap,

                                            the volume setup will error unless it is marked optional. Paths must be

                                            relative and may not contain the ''..'' path or start with ''..''.'
                                          items:
                                            description: Maps a string key to a path within a volume.
                                            properties:
                                              key:
                                                description: key is the key to project.
                                                type: string
                                              mode:
                                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'path is the relative path of the file to map the key to.

                                                  May not be an absolute path.

                                                  May not contain the path element ''..''.

                                                  May not start with the string ''..''.'
                                                type: string
                                            required:
                                            - key
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: optional specify whether the ConfigMap or its keys must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    downwardAPI:
                                      description: downwardAPI information about the downwardAPI data to project
                                      properties:
                                        items:
                                          description: Items is a list of DownwardAPIVolume file
                                          items:
                                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                            properties:
                                              fieldRef:
                                                description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                                properties:
                                                  apiVersion:
                                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                                    type: string
                                                  fieldPath:
                                                    description: Path of the field to select in the specified API version.
                                                    type: string
                                                required:
                                                - fieldPath
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              mode:
                                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                                  between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                                type: string
                                              resourceFieldRef:
                                                description: 'Selects a resource of the container: only resources limits and requests

                                                  (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                                properties:
                                                  containerName:
                                                    description: 'Container name: required for volumes, optional for env vars'
                                                    type: string
                                                  divisor:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Specifies the output format of the exposed resources, defaults to "1"
                                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                    x-kubernetes-int-or-string: true
                                                  resource:
                                                    description: 'Required: resource to select'
                                                    type: string
                                                required:
                                                - resource
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    secret:
                                      description: secret information about the secret data to project
                                      properties:
                                        items:
                                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                            Secret will be projected into the volume as a file whose name is the

                                            key and content is the value. If specified, the listed keys will be

                                            projected into the specified paths, and unlisted keys will not be

                                            present. If a key is specified which is not present in the Secret,

                                            the volume setup will error unless it is marked optional. Paths must be

                                            relative and may not contain the ''..'' path or start with ''..''.'
                                          items:
                                            description: Maps a string key to a path within a volume.
                                            properties:
                                              key:
                                                description: key is the key to project.
                                                type: string
                                              mode:
                                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'path is the relative path of the file to map the key to.

                                                  May not be an absolute path.

                                                  May not contain the path element ''..''.

                                                  May not start with the string ''..''.'
                                                type: string
                                            required:
                                            - key
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: optional field specify whether the Secret or its key must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    serviceAccountToken:
                                      description: serviceAccountToken is information about the serviceAccountToken data to project
                                      properties:
                                        audience:
                                          description: 'audience is the intended audience of the token. A recipient of a token

                                            must identify itself with an identifier specified in the audience of the

                                            token, and otherwise should reject the token. The audience defaults to the

                                            identifier of the apiserver.'
                                          type: string
                                        expirationSeconds:
                                          description: 'expirationSeconds is the requested duration of validity of the service

                                            account token. As the token approaches expiration, the kubelet volume

                                            plugin will proactively rotate the service account token. The kubelet will

                                            start trying to rotate the token if the token is older than 80 percent of

                                            its time to live or if the token is older than 24 hours.Defaults to 1 hour

                                            and must be at least 10 minutes.'
                                          format: int64
                                          type: integer
                                        path:
                                          description: 'path is the path relative to the mount point of the file to project the

                                            token into.'
                                          type: string
                                      required:
                                      - path
                                      type: object
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          quobyte:
                            description: 'quobyte represents a Quobyte mount on the host that shares a pod''s lifetime.

                              Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.'
                            properties:
                              group:
                                description: 'group to map volume access to

                                  Default is no group'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the Quobyte volume to be mounted with read-only permissions.

                                  Defaults to false.'
                                type: boolean
                              registry:
                                description: 'registry represents a single or multiple Quobyte Registry services

                                  specified as a string as host:port pair (multiple entries are separated with commas)

                                  which acts as the central registry for volumes'
                                type: string
                              tenant:
                                description: 'tenant owning the given Quobyte volume in the Backend

                                  Used with dynamically provisioned Quobyte volumes, value is set by the plugin'
                                type: string
                              user:
                                description: 'user to map volume access to

                                  Defaults to serivceaccount user'
                                type: string
                              volume:
                                description: volume is a string that references an already created Quobyte volume by name.
                                type: string
                            required:
                            - registry
                            - volume
                            type: object
                          rbd:
                            description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime.

                              Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.

                              More info: https://examples.k8s.io/volumes/rbd/README.md'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd'
                                type: string
                              image:
                                description: 'image is the rados image name.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              keyring:
                                default: /etc/ceph/keyring
                                description: 'keyring is the path to key ring for RBDUser.

                                  Default is /etc/ceph/keyring.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              monitors:
                                description: 'monitors is a collection of Ceph monitors.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              pool:
                                default: rbd
                                description: 'pool is the rados pool name.

                                  Default is rbd.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: boolean
                              secretRef:
                                description: 'secretRef is name of the authentication secret for RBDUser. If provided

                                  overrides keyring.

                                  Default is nil.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              user:
                                default: admin
                                description: 'user is the rados user name.

                                  Default is admin.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                            required:
                            - image
                            - monitors
                            type: object
                          scaleIO:
                            description: 'scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

                              Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.'
                            properties:
                              fsType:
                                default: xfs
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs".

                                  Default is "xfs".'
                                type: string
                              gateway:
                                description: gateway is the host address of the ScaleIO API Gateway.
                                type: string
                              protectionDomain:
                                description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
                                type: string
                              readOnly:
                                description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef references to the secret for ScaleIO user and other

                                  sensitive information. If this is not provided, Login operation will fail.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              sslEnabled:
                                description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
                                type: boolean
                              storageMode:
                                default: ThinProvisioned
                                description: 'storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

                                  Default is ThinProvisioned.'
                                type: string
                              storagePool:
                                description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
                                type: string
                              system:
                                description: system is the name of the storage system as configured in ScaleIO.
                                type: string
                              volumeName:
                                description: 'volumeName is the name of a volume already created in the ScaleIO system

                                  that is associated with this volume source.'
                                type: string
                            required:
                            - gateway
                            - secretRef
                            - system
                            type: object
                          secret:
                            description: 'secret represents a secret that should populate this volume.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                            properties:
                              defaultMode:
                                description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values

                                  for mode bits. Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: 'items If unspecified, each key-value pair in the Data field of the referenced

                                  Secret will be projected into the volume as a file whose name is the

                                  key and content is the value. If specified, the listed keys will be

                                  projected into the specified paths, and unlisted keys will not be

                                  present. If a key is specified which is not present in the Secret,

                                  the volume setup will error unless it is marked optional. Paths must be

                                  relative and may not contain the ''..'' path or start with ''..''.'
                                items:
                                  description: Maps a string key to a path within a volume.
                                  properties:
                                    key:
                                      description: key is the key to project.
                                      type: string
                                    mode:
                                      description: 'mode is Optional: mode bits used to set permissions on this file.

                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'path is the relative path of the file to map the key to.

                                        May not be an absolute path.

                                        May not contain the path element ''..''.

                                        May not start with the string ''..''.'
                                      type: string
                                  required:
                                  - key
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              optional:
                                description: optional field specify whether the Secret or its keys must be defined
                                type: boolean
                              secretName:
                                description: 'secretName is the name of the secret in the pod''s namespace to use.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                                type: string
                            type: object
                          storageos:
                            description: 'storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

                              Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef specifies the secret to use for obtaining the StorageOS API

                                  credentials.  If not specified, default values will be attempted.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              volumeName:
                                description: 'volumeName is the human-readable name of the StorageOS volume.  Volume

                                  names are only unique within a namespace.'
                                type: string
                              volumeNamespace:
                                description: 'volumeNamespace specifies the scope of the volume within StorageOS.  If no

                                  namespace is specified then the Pod''s namespace will be used.  This allows the

                                  Kubernetes name scoping to be mirrored within StorageOS for tighter integration.

                                  Set VolumeName to any name to override the default behaviour.

                                  Set to "default" if you are not using namespaces within StorageOS.

                                  Namespaces that do not pre-exist within StorageOS will be created.'
                                type: string
                            type: object
                          vsphereVolume:
                            description: 'vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.

                              Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type

                              are redirected to the csi.vsphere.vmware.com CSI driver.'
                            properties:
                              fsType:
                                description: 'fsType is filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              storagePolicyID:
                                description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
                                type: string
                              storagePolicyName:
                                description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
                                type: string
                              volumePath:
                                description: volumePath is the path that identifies vSphere volume vmdk
                                type: string
                            required:
                            - volumePath
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                  type: object
                maxItems: 200
                type: array
                x-kubernetes-validations:
                - message: template must have at most one template type
                  rule: 'self.all(t, (has(t.container) ? 1 : 0) + (has(t.script) ? 1 : 0) + (has(t.dag) ? 1 : 0) + (has(t.steps) ? 1 : 0) + (has(t.resource) ? 1 : 0) + (has(t.suspend) ? 1 : 0) + (has(t.containerSet) ? 1 : 0) + (has(t.data) ? 1 : 0) + (has(t.http) ? 1 : 0) + (has(t.plugin) ? 1 : 0) <= 1)'
                - message: timeout cannot be applied to steps or dag templates
                  rule: self.all(t, !(has(t.timeout) && t.timeout != "" && (has(t.steps) || has(t.dag))))
                - message: activeDeadlineSeconds is only valid for leaf templates
                  rule: self.all(t, !(has(t.activeDeadlineSeconds) && (has(t.steps) || has(t.dag))))
              tolerations:
                description: Tolerations to apply to workflow pods.
                items:
                  description: 'The pod this Toleration is attached to tolerates any taint that matches

                    the triple <key,value,effect> using the matching operator <operator>.'
                  properties:
                    effect:
                      description: 'Effect indicates the taint effect to match. Empty means match all taint effects.

                        When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.'
                      type: string
                    key:
                      description: 'Key is the taint key that the toleration applies to. Empty means match all taint keys.

                        If the key is empty, operator must be Exists; this combination means to match all values and all keys.'
                      type: string
                    operator:
                      description: 'Operator represents a key''s relationship to the value.

                        Valid operators are Exists and Equal. Defaults to Equal.

                        Exists is equivalent to wildcard for value, so that a pod can

                        tolerate all taints of a particular category.'
                      type: string
                    tolerationSeconds:
                      description: 'TolerationSeconds represents the period of time the toleration (which must be

                        of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,

                        it is not set, which means tolerate the taint forever (do not evict). Zero and

                        negative values will be treated as 0 (evict immediately) by the system.'
                      format: int64
                      type: integer
                    value:
                      description: 'Value is the taint value the toleration matches to.

                        If the operator is Exists, the value should be empty, otherwise just a regular string.'
                      type: string
                  type: object
                type: array
              ttlStrategy:
                description: 'TTLStrategy limits the lifetime of a Workflow that has finished execution depending on if it

                  Succeeded or Failed. If this struct is set, once the Workflow finishes, it will be

                  deleted after the time to live expires. If this field is unset,

                  the controller config map will hold the default values.'
                properties:
                  secondsAfterCompletion:
                    description: SecondsAfterCompletion is the number of seconds to live after completion
                    format: int32
                    type: integer
                  secondsAfterFailure:
                    description: SecondsAfterFailure is the number of seconds to live after failure
                    format: int32
                    type: integer
                  secondsAfterSuccess:
                    description: SecondsAfterSuccess is the number of seconds to live after success
                    format: int32
                    type: integer
                type: object
              volumeClaimGC:
                description: VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows
                properties:
                  strategy:
                    description: Strategy is the strategy to use. One of "OnWorkflowCompletion", "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
                    type: string
                type: object
              volumeClaimTemplates:
                description: 'VolumeClaimTemplates is a list of claims that containers are allowed to reference.

                  The Workflow controller will create the claims at the beginning of the workflow

                  and delete the claims upon completion of the workflow'
                items:
                  description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
                  properties:
                    apiVersion:
                      description: 'APIVersion defines the versioned schema of this representation of an object.

                        Servers should convert recognized schemas to the latest internal value, and

                        may reject unrecognized values.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                      type: string
                    kind:
                      description: 'Kind is a string value representing the REST resource this object represents.

                        Servers may infer this from the endpoint the client submits requests to.

                        Cannot be updated.

                        In CamelCase.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    metadata:
                      description: 'Standard object''s metadata.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        finalizers:
                          items:
                            type: string
                          type: array
                        generateName:
                          type: string
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                        name:
                          type: string
                        namespace:
                          type: string
                      type: object
                    spec:
                      description: 'spec defines the desired characteristics of a volume requested by a pod author.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        accessModes:
                          description: 'accessModes contains the desired access modes the volume should have.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        dataSource:
                          description: 'dataSource field can be used to specify either:

                            * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                            * An existing PVC (PersistentVolumeClaim)

                            If the provisioner or an external controller can support the specified data source,

                            it will create a new volume based on the contents of the specified data source.

                            When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                            and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                            If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                          properties:
                            apiGroup:
                              description: 'APIGroup is the group for the resource being referenced.

                                If APIGroup is not specified, the specified Kind must be in the core API group.

                                For any other third-party types, APIGroup is required.'
                              type: string
                            kind:
                              description: Kind is the type of resource being referenced
                              type: string
                            name:
                              description: Name is the name of resource being referenced
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                          x-kubernetes-map-type: atomic
                        dataSourceRef:
                          description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                          properties:
                            apiGroup:
                              description: 'APIGroup is the group for the resource being referenced.

                                If APIGroup is not specified, the specified Kind must be in the core API group.

                                For any other third-party types, APIGroup is required.'
                              type: string
                            kind:
                              description: Kind is the type of resource being referenced
                              type: string
                            name:
                              description: Name is the name of resource being referenced
                              type: string
                            namespace:
                              description: 'Namespace is the namespace of resource being referenced

                                Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                        resources:
                          description: 'resources represents the minimum resources the volume should have.

                            If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                            that are lower than previous value but must still be higher than capacity recorded in the

                            status field of the claim.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                          properties:
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        selector:
                          description: selector is a label query over volumes to consider for binding.
                          properties:
                            matchExpressions:
                              description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                              items:
                                description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                  relates the key and values.'
                                properties:
                                  key:
                                    description: key is the label key that the selector applies to.
                                    type: string
                                  operator:
                                    description: 'operator represents a key''s relationship to a set of values.

                                      Valid operators are In, NotIn, Exists and DoesNotExist.'
                                    type: string
                                  values:
                                    description: 'values is an array of string values. If the operator is In or NotIn,

                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                      the values array must be empty. This array is replaced during a strategic

                                      merge patch.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            matchLabels:
                              additionalProperties:
                                type: string
                              description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                map is equivalent to an element of matchExpressions, whose key field is "key", the

                                operator is "In", and the values array contains only "value". The requirements are ANDed.'
                              type: object
                          type: object
                          x-kubernetes-map-type: atomic
                        storageClassName:
                          description: 'storageClassName is the name of the StorageClass required by the claim.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                          type: string
                        volumeAttributesClassName:
                          description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                            If specified, the CSI driver will create or update the volume with the attributes defined

                            in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                            it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                            will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                            If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                            will be set by the persistentvolume controller if it exists.

                            If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                            set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                            exists.

                            More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                            (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                          type: string
                        volumeMode:
                          description: 'volumeMode defines what type of volume is required by the claim.

                            Value of Filesystem is implied when not included in claim spec.'
                          type: string
                        volumeName:
                          description: volumeName is the binding reference to the PersistentVolume backing this claim.
                          type: string
                      type: object
                    status:
                      description: 'status represents the current information/status of a persistent volume claim.

                        Read-only.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        accessModes:
                          description: 'accessModes contains the actual access modes the volume backing the PVC has.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        allocatedResourceStatuses:
                          additionalProperties:
                            description: 'When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource

                              that it does not recognizes, then it should ignore that update and let other controllers

                              handle it.'
                            type: string
                          description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
                          type: object
                          x-kubernetes-map-type: granular
                        allocatedResources:
                          additionalProperties:
                            anyOf:
                            - type: integer
                            - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
                          type: object
                        capacity:
                          additionalProperties:
                            anyOf:
                            - type: integer
                            - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: capacity represents the actual resources of the underlying volume.
                          type: object
                        conditions:
                          description: 'conditions is the current Condition of persistent volume claim. If underlying persistent volume is being

                            resized then the Condition will be set to ''Resizing''.'
                          items:
                            description: PersistentVolumeClaimCondition contains details about state of pvc
                            properties:
                              lastProbeTime:
                                description: lastProbeTime is the time we probed the condition.
                                format: date-time
                                type: string
                              lastTransitionTime:
                                description: lastTransitionTime is the time the condition transitioned from one status to another.
                                format: date-time
                                type: string
                              message:
                                description: message is the human-readable message indicating details about last transition.
                                type: string
                              reason:
                                description: 'reason is a unique, this should be a short, machine understandable string that gives the reason

                                  for condition''s last transition. If it reports "Resizing" that means the underlying

                                  persistent volume is being resized.'
                                type: string
                              status:
                                description: 'Status is the status of the condition.

                                  Can be True, False, Unknown.

                                  More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required'
                                type: string
                              type:
                                description: 'Type is the type of the condition.

                                  More info: 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'
                                type: string
                            required:
                            - status
                            - type
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - type
                          x-kubernetes-list-type: map
                        currentVolumeAttributesClassName:
                          description: 'currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.

                            When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim

                            This is a beta field and requires enabling VolumeAttributesClass feature (off by default).'
                          type: string
                        modifyVolumeStatus:
                          description: 'ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.

                            When this is unset, there is no ModifyVolume operation being attempted.

                            This is a beta field and requires enabling VolumeAttributesClass feature (off by default).'
                          properties:
                            status:
                              description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n   Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n   the specified VolumeAttributesClass not existing.\n - InProgress\n   InProgress indicates that the volume is being modified.\n - Infeasible\n  Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t  resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately."
                              type: string
                            targetVolumeAttributesClassName:
                              description: targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled
                              type: string
                          required:
                          - status
                          type: object
                        phase:
                          description: phase represents the current phase of PersistentVolumeClaim.
                          type: string
                      type: object
                  type: object
                type: array
              volumes:
                description: Volumes is a list of volumes that can be mounted by containers in a workflow.
                items:
                  description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
                  properties:
                    awsElasticBlockStore:
                      description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree

                        awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: string
                        partition:
                          description: 'partition is the partition in the volume that you want to mount.

                            If omitted, the default is to mount by volume name.

                            Examples: For volume /dev/sda1, you specify the partition as "1".

                            Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
                          format: int32
                          type: integer
                        readOnly:
                          description: 'readOnly value true will force the readOnly setting in VolumeMounts.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: boolean
                        volumeID:
                          description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: string
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      description: 'azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

                        Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type

                        are redirected to the disk.csi.azure.com CSI driver.'
                      properties:
                        cachingMode:
                          description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                          type: string
                        diskName:
                          description: diskName is the Name of the data disk in the blob storage
                          type: string
                        diskURI:
                          description: diskURI is the URI of data disk in the blob storage
                          type: string
                        fsType:
                          default: ext4
                          description: 'fsType is Filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        kind:
                          description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
                          type: string
                        readOnly:
                          default: false
                          description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      description: 'azureFile represents an Azure File Service mount on the host and bind mount to the pod.

                        Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type

                        are redirected to the file.csi.azure.com CSI driver.'
                      properties:
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretName:
                          description: secretName is the  name of secret that contains Azure Storage Account Name and Key
                          type: string
                        shareName:
                          description: shareName is the azure share Name
                          type: string
                      required:
                      - secretName
                      - shareName
                      type: object
                    cephfs:
                      description: 'cephFS represents a Ceph FS mount on the host that shares a pod''s lifetime.

                        Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.'
                      properties:
                        monitors:
                          description: 'monitors is Required: Monitors is a collection of Ceph monitors

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        path:
                          description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
                          type: string
                        readOnly:
                          description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: boolean
                        secretFile:
                          description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: string
                        secretRef:
                          description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        user:
                          description: 'user is optional: User is the rados user name, default is admin

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      description: 'cinder represents a cinder volume attached and mounted on kubelets host machine.

                        Deprecated: Cinder is deprecated. All operations for the in-tree cinder type

                        are redirected to the cinder.csi.openstack.org CSI driver.

                        More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: boolean
                        secretRef:
                          description: 'secretRef is optional: points to a secret object containing parameters used to connect

                            to OpenStack.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        volumeID:
                          description: 'volumeID used to identify the volume in cinder.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      description: configMap represents a configMap that should populate this volume
                      properties:
                        defaultMode:
                          description: 'defaultMode is optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                            ConfigMap will be projected into the volume as a file whose name is the

                            key and content is the value. If specified, the listed keys will be

                            projected into the specified paths, and unlisted keys will not be

                            present. If a key is specified which is not present in the ConfigMap,

                            the volume setup will error unless it is marked optional. Paths must be

                            relative and may not contain the ''..'' path or start with ''..''.'
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
                                type: string
                              mode:
                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'path is the relative path of the file to map the key to.

                                  May not be an absolute path.

                                  May not contain the path element ''..''.

                                  May not start with the string ''..''.'
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        name:
                          default: ''
                          description: 'Name of the referent.

                            This field is effectively required, but due to backwards compatibility is

                            allowed to be empty. Instances of this type with an empty value here are

                            almost certainly wrong.

                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        optional:
                          description: optional specify whether the ConfigMap or its keys must be defined
                          type: boolean
                      type: object
                      x-kubernetes-map-type: atomic
                    csi:
                      description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
                      properties:
                        driver:
                          description: 'driver is the name of the CSI driver that handles this volume.

                            Consult with your admin for the correct name as registered in the cluster.'
                          type: string
                        fsType:
                          description: 'fsType to mount. Ex. "ext4", "xfs", "ntfs".

                            If not provided, the empty value is passed to the associated CSI driver

                            which will determine the default filesystem to apply.'
                          type: string
                        nodePublishSecretRef:
                          description: 'nodePublishSecretRef is a reference to the secret object containing

                            sensitive information to pass to the CSI driver to complete the CSI

                            NodePublishVolume and NodeUnpublishVolume calls.

                            This field is optional, and  may be empty if no secret is required. If the

                            secret object contains more than one secret, all secret references are passed.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        readOnly:
                          description: 'readOnly specifies a read-only configuration for the volume.

                            Defaults to false (read/write).'
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          description: 'volumeAttributes stores driver-specific properties that are passed to the CSI

                            driver. Consult your driver''s documentation for supported values.'
                          type: object
                      required:
                      - driver
                      type: object
                    downwardAPI:
                      description: downwardAPI represents downward API about the pod that should populate this volume
                      properties:
                        defaultMode:
                          description: 'Optional: mode bits to use on created files by default. Must be a

                            Optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: Items is a list of downward API volume file
                          items:
                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                            properties:
                              fieldRef:
                                description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                properties:
                                  apiVersion:
                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                    type: string
                                  fieldPath:
                                    description: Path of the field to select in the specified API version.
                                    type: string
                                required:
                                - fieldPath
                                type: object
                                x-kubernetes-map-type: atomic
                              mode:
                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                  between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                type: string
                              resourceFieldRef:
                                description: 'Selects a resource of the container: only resources limits and requests

                                  (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                properties:
                                  containerName:
                                    description: 'Container name: required for volumes, optional for env vars'
                                    type: string
                                  divisor:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Specifies the output format of the exposed resources, defaults to "1"
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  resource:
                                    description: 'Required: resource to select'
                                    type: string
                                required:
                                - resource
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    emptyDir:
                      description: 'emptyDir represents a temporary directory that shares a pod''s lifetime.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                      properties:
                        medium:
                          description: 'medium represents what type of storage medium should back this directory.

                            The default is "" which means to use the node''s default medium.

                            Must be an empty string (default) or Memory.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                          type: string
                        sizeLimit:
                          anyOf:
                          - type: integer
                          - type: string
                          description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume.

                            The size limit is also applicable for memory medium.

                            The maximum usage on memory medium EmptyDir would be the minimum value between

                            the SizeLimit specified here and the sum of memory limits of all containers in a pod.

                            The default is nil which means that the limit is undefined.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                      type: object
                    ephemeral:
                      description: "ephemeral represents a volume that is handled by a cluster storage driver.\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n   tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\n   information on the connection between this volume type\n   and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time."
                      properties:
                        volumeClaimTemplate:
                          description: 'Will be used to create a stand-alone PVC to provision the volume.

                            The pod in which this EphemeralVolumeSource is embedded will be the

                            owner of the PVC, i.e. the PVC will be deleted together with the

                            pod.  The name of the PVC will be `<pod name>-<volume name>` where

                            `<volume name>` is the name from the `PodSpec.Volumes` array

                            entry. Pod validation will reject the pod if the concatenated name

                            is not valid for a PVC (for example, too long).


                            An existing PVC with that name that is not owned by the pod

                            will *not* be used for the pod to avoid using an unrelated

                            volume by mistake. Starting the pod is then blocked until

                            the unrelated PVC is removed. If such a pre-created PVC is

                            meant to be used by the pod, the PVC has to updated with an

                            owner reference to the pod once the pod exists. Normally

                            this should not be necessary, but it may be useful when

                            manually reconstructing a broken cluster.


                            This field is read-only and no changes will be made by Kubernetes

                            to the PVC after it has been created.


                            Required, must not be nil.'
                          properties:
                            metadata:
                              description: 'May contain labels and annotations that will be copied into the PVC

                                when creating it. No other fields are allowed and will be rejected during

                                validation.'
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                finalizers:
                                  items:
                                    type: string
                                  type: array
                                generateName:
                                  type: string
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                name:
                                  type: string
                                namespace:
                                  type: string
                              type: object
                            spec:
                              description: 'The specification for the PersistentVolumeClaim. The entire content is

                                copied unchanged into the PVC that gets created from this

                                template. The same fields as in a PersistentVolumeClaim

                                are also valid here.'
                              properties:
                                accessModes:
                                  description: 'accessModes contains the desired access modes the volume should have.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                dataSource:
                                  description: 'dataSource field can be used to specify either:

                                    * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                    * An existing PVC (PersistentVolumeClaim)

                                    If the provisioner or an external controller can support the specified data source,

                                    it will create a new volume based on the contents of the specified data source.

                                    When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                    and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                    If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                  properties:
                                    apiGroup:
                                      description: 'APIGroup is the group for the resource being referenced.

                                        If APIGroup is not specified, the specified Kind must be in the core API group.

                                        For any other third-party types, APIGroup is required.'
                                      type: string
                                    kind:
                                      description: Kind is the type of resource being referenced
                                      type: string
                                    name:
                                      description: Name is the name of resource being referenced
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                  x-kubernetes-map-type: atomic
                                dataSourceRef:
                                  description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                                  properties:
                                    apiGroup:
                                      description: 'APIGroup is the group for the resource being referenced.

                                        If APIGroup is not specified, the specified Kind must be in the core API group.

                                        For any other third-party types, APIGroup is required.'
                                      type: string
                                    kind:
                                      description: Kind is the type of resource being referenced
                                      type: string
                                    name:
                                      description: Name is the name of resource being referenced
                                      type: string
                                    namespace:
                                      description: 'Namespace is the namespace of resource being referenced

                                        Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                        (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                resources:
                                  description: 'resources represents the minimum resources the volume should have.

                                    If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                    that are lower than previous value but must still be higher than capacity recorded in the

                                    status field of the claim.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                  properties:
                                    limits:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      description: 'Limits describes the maximum amount of compute resources allowed.

                                        More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                      type: object
                                    requests:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      description: 'Requests describes the minimum amount of compute resources required.

                                        If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                        otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                        More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                      type: object
                                  type: object
                                selector:
                                  description: selector is a label query over volumes to consider for binding.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                storageClassName:
                                  description: 'storageClassName is the name of the StorageClass required by the claim.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                  type: string
                                volumeAttributesClassName:
                                  description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                    If specified, the CSI driver will create or update the volume with the attributes defined

                                    in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                    it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                    will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                    If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                    will be set by the persistentvolume controller if it exists.

                                    If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                    set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                    exists.

                                    More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                    (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                                  type: string
                                volumeMode:
                                  description: 'volumeMode defines what type of volume is required by the claim.

                                    Value of Filesystem is implied when not included in claim spec.'
                                  type: string
                                volumeName:
                                  description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                  type: string
                              type: object
                          required:
                          - spec
                          type: object
                      type: object
                    fc:
                      description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        lun:
                          description: 'lun is Optional: FC target lun number'
                          format: int32
                          type: integer
                        readOnly:
                          description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        targetWWNs:
                          description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        wwids:
                          description: 'wwids Optional: FC volume world wide identifiers (wwids)

                            Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    flexVolume:
                      description: 'flexVolume represents a generic volume resource that is

                        provisioned/attached using an exec based plugin.

                        Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.'
                      properties:
                        driver:
                          description: driver is the name of the driver to use for this volume.
                          type: string
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.'
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          description: 'options is Optional: this field holds extra command options if any.'
                          type: object
                        readOnly:
                          description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef is Optional: secretRef is reference to the secret object containing

                            sensitive information to pass to the plugin scripts. This may be

                            empty if no secret object is specified. If the secret object

                            contains more than one secret, all secrets are passed to the plugin

                            scripts.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                      required:
                      - driver
                      type: object
                    flocker:
                      description: 'flocker represents a Flocker volume attached to a kubelet''s host machine. This depends on the Flocker control service being running.

                        Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.'
                      properties:
                        datasetName:
                          description: 'datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker

                            should be considered as deprecated'
                          type: string
                        datasetUUID:
                          description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
                          type: string
                      type: object
                    gcePersistentDisk:
                      description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree

                        gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                      properties:
                        fsType:
                          description: 'fsType is filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: string
                        partition:
                          description: 'partition is the partition in the volume that you want to mount.

                            If omitted, the default is to mount by volume name.

                            Examples: For volume /dev/sda1, you specify the partition as "1".

                            Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          format: int32
                          type: integer
                        pdName:
                          description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
                      description: 'gitRepo represents a git repository at a particular revision.

                        Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an

                        EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir

                        into the Pod''s container.'
                      properties:
                        directory:
                          description: 'directory is the target directory name.

                            Must not contain or start with ''..''.  If ''.'' is supplied, the volume directory will be the

                            git repository.  Otherwise, if specified, the volume will contain the git repository in

                            the subdirectory with the given name.'
                          type: string
                        repository:
                          description: repository is the URL
                          type: string
                        revision:
                          description: revision is the commit hash for the specified revision.
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
                      description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime.

                        Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.

                        More info: https://examples.k8s.io/volumes/glusterfs/README.md'
                      properties:
                        endpoints:
                          description: 'endpoints is the endpoint name that details Glusterfs topology.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: string
                        path:
                          description: 'path is the Glusterfs volume path.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions.

                            Defaults to false.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
                      description: 'hostPath represents a pre-existing file or directory on the host

                        machine that is directly exposed to the container. This is generally

                        used for system agents or other privileged things that are allowed

                        to see the host machine. Most containers will NOT need this.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                      properties:
                        path:
                          description: 'path of the directory on the host.

                            If the path is a symlink, it will follow the link to the real path.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                          type: string
                        type:
                          description: 'type for HostPath Volume

                            Defaults to ""

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                          type: string
                      required:
                      - path
                      type: object
                    image:
                      description: 'image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet''s host machine.

                        The volume is resolved at pod startup depending on which PullPolicy value is provided:


                        - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                        - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                        - IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.


                        The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.

                        A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.

                        The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.

                        The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.

                        The volume will be mounted read-only (ro) and non-executable files (noexec).

                        Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.

                        The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.'
                      properties:
                        pullPolicy:
                          description: 'Policy for pulling OCI objects. Possible values are:

                            Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                            Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                            IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.'
                          type: string
                        reference:
                          description: 'Required: Image or artifact reference to be used.

                            Behaves in the same way as pod.spec.containers[*].image.

                            Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                      type: object
                    iscsi:
                      description: 'iscsi represents an ISCSI Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        More info: https://examples.k8s.io/volumes/iscsi/README.md'
                      properties:
                        chapAuthDiscovery:
                          description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
                          type: boolean
                        chapAuthSession:
                          description: chapAuthSession defines whether support iSCSI Session CHAP authentication
                          type: boolean
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi'
                          type: string
                        initiatorName:
                          description: 'initiatorName is the custom iSCSI Initiator Name.

                            If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface

                            <target portal>:<volume name> will be created for the connection.'
                          type: string
                        iqn:
                          description: iqn is the target iSCSI Qualified Name.
                          type: string
                        iscsiInterface:
                          default: default
                          description: 'iscsiInterface is the interface Name that uses an iSCSI transport.

                            Defaults to ''default'' (tcp).'
                          type: string
                        lun:
                          description: lun represents iSCSI Target Lun number.
                          format: int32
                          type: integer
                        portals:
                          description: 'portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port

                            is other than default (typically TCP ports 860 and 3260).'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.'
                          type: boolean
                        secretRef:
                          description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        targetPortal:
                          description: 'targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port

                            is other than default (typically TCP ports 860 and 3260).'
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
                      description: 'name of the volume.

                        Must be a DNS_LABEL and unique within the pod.

                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                    nfs:
                      description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                      properties:
                        path:
                          description: 'path that is exported by the NFS server.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the NFS export to be mounted with read-only permissions.

                            Defaults to false.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: boolean
                        server:
                          description: 'server is the hostname or IP address of the NFS server.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
                      description: 'persistentVolumeClaimVolumeSource represents a reference to a

                        PersistentVolumeClaim in the same namespace.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        claimName:
                          description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                          type: string
                        readOnly:
                          description: 'readOnly Will force the ReadOnly setting in VolumeMounts.

                            Default false.'
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
                      description: 'photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.

                        Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        pdID:
                          description: pdID is the ID that identifies Photon Controller persistent disk
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
                      description: 'portworxVolume represents a portworx volume attached and mounted on kubelets host machine.

                        Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type

                        are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate

                        is on.'
                      properties:
                        fsType:
                          description: 'fSType represents the filesystem type to mount

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        volumeID:
                          description: volumeID uniquely identifies a Portworx volume
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
                      description: projected items for all in one resources secrets, configmaps, and downward API
                      properties:
                        defaultMode:
                          description: 'defaultMode are the mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        sources:
                          description: 'sources is the list of volume projections. Each entry in this list

                            handles one source.'
                          items:
                            description: 'Projection that may be projected along with other supported volume types.

                              Exactly one of these fields must be set.'
                            properties:
                              clusterTrustBundle:
                                description: 'ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field

                                  of ClusterTrustBundle objects in an auto-updating file.


                                  Alpha, gated by the ClusterTrustBundleProjection feature gate.


                                  ClusterTrustBundle objects can either be selected by name, or by the

                                  combination of signer name and a label selector.


                                  Kubelet performs aggressive normalization of the PEM contents written

                                  into the pod filesystem.  Esoteric PEM features such as inter-block

                                  comments and block headers are stripped.  Certificates are deduplicated.

                                  The ordering of certificates within the file is arbitrary, and Kubelet

                                  may change the order over time.'
                                properties:
                                  labelSelector:
                                    description: 'Select all ClusterTrustBundles that match this label selector.  Only has

                                      effect if signerName is set.  Mutually-exclusive with name.  If unset,

                                      interpreted as "match nothing".  If set but empty, interpreted as "match

                                      everything".'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  name:
                                    description: 'Select a single ClusterTrustBundle by object name.  Mutually-exclusive

                                      with signerName and labelSelector.'
                                    type: string
                                  optional:
                                    description: 'If true, don''t block pod startup if the referenced ClusterTrustBundle(s)

                                      aren''t available.  If using name, then the named ClusterTrustBundle is

                                      allowed not to exist.  If using signerName, then the combination of

                                      signerName and labelSelector is allowed to match zero

                                      ClusterTrustBundles.'
                                    type: boolean
                                  path:
                                    description: Relative path from the volume root to write the bundle.
                                    type: string
                                  signerName:
                                    description: 'Select all ClusterTrustBundles that match this signer name.

                                      Mutually-exclusive with name.  The contents of all selected

                                      ClusterTrustBundles will be unified and deduplicated.'
                                    type: string
                                required:
                                - path
                                type: object
                              configMap:
                                description: configMap information about the configMap data to project
                                properties:
                                  items:
                                    description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                      ConfigMap will be projected into the volume as a file whose name is the

                                      key and content is the value. If specified, the listed keys will be

                                      projected into the specified paths, and unlisted keys will not be

                                      present. If a key is specified which is not present in the ConfigMap,

                                      the volume setup will error unless it is marked optional. Paths must be

                                      relative and may not contain the ''..'' path or start with ''..''.'
                                    items:
                                      description: Maps a string key to a path within a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file.

                                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'path is the relative path of the file to map the key to.

                                            May not be an absolute path.

                                            May not contain the path element ''..''.

                                            May not start with the string ''..''.'
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: optional specify whether the ConfigMap or its keys must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              downwardAPI:
                                description: downwardAPI information about the downwardAPI data to project
                                properties:
                                  items:
                                    description: Items is a list of DownwardAPIVolume file
                                    items:
                                      description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                      properties:
                                        fieldRef:
                                          description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        mode:
                                          description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                            between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                          type: string
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              secret:
                                description: secret information about the secret data to project
                                properties:
                                  items:
                                    description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                      Secret will be projected into the volume as a file whose name is the

                                      key and content is the value. If specified, the listed keys will be

                                      projected into the specified paths, and unlisted keys will not be

                                      present. If a key is specified which is not present in the Secret,

                                      the volume setup will error unless it is marked optional. Paths must be

                                      relative and may not contain the ''..'' path or start with ''..''.'
                                    items:
                                      description: Maps a string key to a path within a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file.

                                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'path is the relative path of the file to map the key to.

                                            May not be an absolute path.

                                            May not contain the path element ''..''.

                                            May not start with the string ''..''.'
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: optional field specify whether the Secret or its key must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              serviceAccountToken:
                                description: serviceAccountToken is information about the serviceAccountToken data to project
                                properties:
                                  audience:
                                    description: 'audience is the intended audience of the token. A recipient of a token

                                      must identify itself with an identifier specified in the audience of the

                                      token, and otherwise should reject the token. The audience defaults to the

                                      identifier of the apiserver.'
                                    type: string
                                  expirationSeconds:
                                    description: 'expirationSeconds is the requested duration of validity of the service

                                      account token. As the token approaches expiration, the kubelet volume

                                      plugin will proactively rotate the service account token. The kubelet will

                                      start trying to rotate the token if the token is older than 80 percent of

                                      its time to live or if the token is older than 24 hours.Defaults to 1 hour

                                      and must be at least 10 minutes.'
                                    format: int64
                                    type: integer
                                  path:
                                    description: 'path is the path relative to the mount point of the file to project the

                                      token into.'
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    quobyte:
                      description: 'quobyte represents a Quobyte mount on the host that shares a pod''s lifetime.

                        Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.'
                      properties:
                        group:
                          description: 'group to map volume access to

                            Default is no group'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the Quobyte volume to be mounted with read-only permissions.

                            Defaults to false.'
                          type: boolean
                        registry:
                          description: 'registry represents a single or multiple Quobyte Registry services

                            specified as a string as host:port pair (multiple entries are separated with commas)

                            which acts as the central registry for volumes'
                          type: string
                        tenant:
                          description: 'tenant owning the given Quobyte volume in the Backend

                            Used with dynamically provisioned Quobyte volumes, value is set by the plugin'
                          type: string
                        user:
                          description: 'user to map volume access to

                            Defaults to serivceaccount user'
                          type: string
                        volume:
                          description: volume is a string that references an already created Quobyte volume by name.
                          type: string
                      required:
                      - registry
                      - volume
                      type: object
                    rbd:
                      description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime.

                        Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.

                        More info: https://examples.k8s.io/volumes/rbd/README.md'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd'
                          type: string
                        image:
                          description: 'image is the rados image name.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        keyring:
                          default: /etc/ceph/keyring
                          description: 'keyring is the path to key ring for RBDUser.

                            Default is /etc/ceph/keyring.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        monitors:
                          description: 'monitors is a collection of Ceph monitors.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        pool:
                          default: rbd
                          description: 'pool is the rados pool name.

                            Default is rbd.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: boolean
                        secretRef:
                          description: 'secretRef is name of the authentication secret for RBDUser. If provided

                            overrides keyring.

                            Default is nil.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        user:
                          default: admin
                          description: 'user is the rados user name.

                            Default is admin.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                      required:
                      - image
                      - monitors
                      type: object
                    scaleIO:
                      description: 'scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

                        Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.'
                      properties:
                        fsType:
                          default: xfs
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs".

                            Default is "xfs".'
                          type: string
                        gateway:
                          description: gateway is the host address of the ScaleIO API Gateway.
                          type: string
                        protectionDomain:
                          description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
                          type: string
                        readOnly:
                          description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef references to the secret for ScaleIO user and other

                            sensitive information. If this is not provided, Login operation will fail.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        sslEnabled:
                          description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
                          type: boolean
                        storageMode:
                          default: ThinProvisioned
                          description: 'storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

                            Default is ThinProvisioned.'
                          type: string
                        storagePool:
                          description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
                          type: string
                        system:
                          description: system is the name of the storage system as configured in ScaleIO.
                          type: string
                        volumeName:
                          description: 'volumeName is the name of a volume already created in the ScaleIO system

                            that is associated with this volume source.'
                          type: string
                      required:
                      - gateway
                      - secretRef
                      - system
                      type: object
                    secret:
                      description: 'secret represents a secret that should populate this volume.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                      properties:
                        defaultMode:
                          description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values

                            for mode bits. Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: 'items If unspecified, each key-value pair in the Data field of the referenced

                            Secret will be projected into the volume as a file whose name is the

                            key and content is the value. If specified, the listed keys will be

                            projected into the specified paths, and unlisted keys will not be

                            present. If a key is specified which is not present in the Secret,

                            the volume setup will error unless it is marked optional. Paths must be

                            relative and may not contain the ''..'' path or start with ''..''.'
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
                                type: string
                              mode:
                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'path is the relative path of the file to map the key to.

                                  May not be an absolute path.

                                  May not contain the path element ''..''.

                                  May not start with the string ''..''.'
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        optional:
                          description: optional field specify whether the Secret or its keys must be defined
                          type: boolean
                        secretName:
                          description: 'secretName is the name of the secret in the pod''s namespace to use.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                          type: string
                      type: object
                    storageos:
                      description: 'storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

                        Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef specifies the secret to use for obtaining the StorageOS API

                            credentials.  If not specified, default values will be attempted.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        volumeName:
                          description: 'volumeName is the human-readable name of the StorageOS volume.  Volume

                            names are only unique within a namespace.'
                          type: string
                        volumeNamespace:
                          description: 'volumeNamespace specifies the scope of the volume within StorageOS.  If no

                            namespace is specified then the Pod''s namespace will be used.  This allows the

                            Kubernetes name scoping to be mirrored within StorageOS for tighter integration.

                            Set VolumeName to any name to override the default behaviour.

                            Set to "default" if you are not using namespaces within StorageOS.

                            Namespaces that do not pre-exist within StorageOS will be created.'
                          type: string
                      type: object
                    vsphereVolume:
                      description: 'vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.

                        Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type

                        are redirected to the csi.vsphere.vmware.com CSI driver.'
                      properties:
                        fsType:
                          description: 'fsType is filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        storagePolicyID:
                          description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
                          type: string
                        storagePolicyName:
                          description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
                          type: string
                        volumePath:
                          description: volumePath is the path that identifies vSphere volume vmdk
                          type: string
                      required:
                      - volumePath
                      type: object
                  required:
                  - name
                  type: object
                type: array
              workflowMetadata:
                description: WorkflowMetadata contains some metadata of the workflow to refer to
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                  labelsFrom:
                    additionalProperties:
                      properties:
                        expression:
                          type: string
                      required:
                      - expression
                      type: object
                    type: object
                type: object
              workflowTemplateRef:
                description: WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution
                properties:
                  clusterScope:
                    description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                    type: boolean
                  name:
                    description: Name is the resource name of the workflow template.
                    type: string
                type: object
            type: object
          status:
            description: 'WorkflowStatus contains overall status information about a workflow.

              All nested field descriptions have been dropped due to Kubernetes size limitations.'
            properties:
              artifactGCStatus:
                properties:
                  notSpecified:
                    type: boolean
                  podsRecouped:
                    additionalProperties:
                      type: boolean
                    type: object
                  strategiesProcessed:
                    additionalProperties:
                      type: boolean
                    type: object
                type: object
              artifactRepositoryRef:
                properties:
                  artifactRepository:
                    properties:
                      archiveLogs:
                        type: boolean
                      artifactory:
                        properties:
                          keyFormat:
                            type: string
                          passwordSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          repoURL:
                            type: string
                          usernameSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        type: object
                      azure:
                        properties:
                          accountKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          blobNameFormat:
                            type: string
                          container:
                            type: string
                          endpoint:
                            type: string
                          useSDKCreds:
                            type: boolean
                        required:
                        - container
                        - endpoint
                        type: object
                      gcs:
                        properties:
                          bucket:
                            type: string
                          keyFormat:
                            type: string
                          serviceAccountKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        type: object
                      hdfs:
                        properties:
                          addresses:
                            items:
                              type: string
                            type: array
                          dataTransferProtection:
                            type: string
                          force:
                            type: boolean
                          hdfsUser:
                            type: string
                          krbCCacheSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbConfigConfigMap:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbKeytabSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbRealm:
                            type: string
                          krbServicePrincipalName:
                            type: string
                          krbUsername:
                            type: string
                          pathFormat:
                            type: string
                        type: object
                      oss:
                        properties:
                          accessKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          bucket:
                            type: string
                          createBucketIfNotPresent:
                            type: boolean
                          endpoint:
                            type: string
                          keyFormat:
                            type: string
                          lifecycleRule:
                            properties:
                              markDeletionAfterDays:
                                format: int32
                                type: integer
                              markInfrequentAccessAfterDays:
                                format: int32
                                type: integer
                            type: object
                          secretKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          securityToken:
                            type: string
                          useSDKCreds:
                            type: boolean
                        type: object
                      plugin:
                        properties:
                          configuration:
                            type: string
                          keyFormat:
                            type: string
                          name:
                            type: string
                        required:
                        - configuration
                        - name
                        type: object
                      s3:
                        properties:
                          accessKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          bucket:
                            type: string
                          caSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          createBucketIfNotPresent:
                            properties:
                              objectLocking:
                                type: boolean
                            type: object
                          encryptionOptions:
                            properties:
                              enableEncryption:
                                type: boolean
                              kmsEncryptionContext:
                                type: string
                              kmsKeyId:
                                type: string
                              serverSideCustomerKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          endpoint:
                            type: string
                          insecure:
                            type: boolean
                          keyFormat:
                            type: string
                          keyPrefix:
                            type: string
                          region:
                            type: string
                          roleARN:
                            type: string
                          secretKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          sessionTokenSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          useSDKCreds:
                            type: boolean
                        type: object
                    type: object
                  configMap:
                    type: string
                  default:
                    type: boolean
                  key:
                    type: string
                  namespace:
                    type: string
                type: object
              compressedNodes:
                type: string
              conditions:
                items:
                  properties:
                    message:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  type: object
                type: array
              estimatedDuration:
                type: integer
              finishedAt:
                format: date-time
                type: string
              message:
                type: string
              nodes:
                additionalProperties:
                  properties:
                    boundaryID:
                      type: string
                    children:
                      items:
                        type: string
                      type: array
                    daemoned:
                      type: boolean
                    displayName:
                      type: string
                    estimatedDuration:
                      type: integer
                    failedPodRestarts:
                      format: int32
                      type: integer
                    finishedAt:
                      format: date-time
                      type: string
                    hostNodeName:
                      type: string
                    id:
                      type: string
                    inputs:
                      properties:
                        artifacts:
                          items:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        parameters:
                          items:
                            properties:
                              default:
                                type: string
                              description:
                                type: string
                              enum:
                                items:
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                type: string
                              name:
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    type: string
                                  event:
                                    type: string
                                  expression:
                                    type: string
                                  jqFilter:
                                    type: string
                                  jsonPath:
                                    type: string
                                  parameter:
                                    type: string
                                  path:
                                    type: string
                                  supplied:
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          maxItems: 500
                          type: array
                      type: object
                    memoizationStatus:
                      properties:
                        cacheName:
                          type: string
                        hit:
                          type: boolean
                        key:
                          type: string
                      required:
                      - cacheName
                      - hit
                      - key
                      type: object
                    message:
                      type: string
                    name:
                      type: string
                    nodeFlag:
                      properties:
                        hooked:
                          type: boolean
                        retried:
                          type: boolean
                      type: object
                    outboundNodes:
                      items:
                        type: string
                      type: array
                    outputs:
                      properties:
                        artifacts:
                          items:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        exitCode:
                          type: string
                        parameters:
                          items:
                            properties:
                              default:
                                type: string
                              description:
                                type: string
                              enum:
                                items:
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                type: string
                              name:
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    type: string
                                  event:
                                    type: string
                                  expression:
                                    type: string
                                  jqFilter:
                                    type: string
                                  jsonPath:
                                    type: string
                                  parameter:
                                    type: string
                                  path:
                                    type: string
                                  supplied:
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        result:
                          type: string
                      type: object
                    phase:
                      type: string
                    podIP:
                      type: string
                    progress:
                      type: string
                    resourcesDuration:
                      additionalProperties:
                        format: int64
                        type: integer
                      type: object
                    restartingPodUID:
                      type: string
                    startedAt:
                      format: date-time
                      type: string
                    synchronizationStatus:
                      properties:
                        waiting:
                          type: string
                      type: object
                    taskResultSynced:
                      type: boolean
                    templateName:
                      type: string
                    templateRef:
                      properties:
                        clusterScope:
                          type: boolean
                        name:
                          type: string
                        template:
                          type: string
                      type: object
                    templateScope:
                      type: string
                    type:
                      type: string
                  required:
                  - id
                  - name
                  - type
                  type: object
                type: object
              offloadNodeStatusVersion:
                type: string
              outputs:
                properties:
                  artifacts:
                    items:
                      properties:
                        archive:
                          properties:
                            none:
                              type: object
                            tar:
                              properties:
                                compressionLevel:
                                  format: int32
                                  type: integer
                              type: object
                            zip:
                              type: object
                          type: object
                        archiveLogs:
                          type: boolean
                        artifactGC:
                          properties:
                            podMetadata:
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            serviceAccountName:
                              type: string
                            strategy:
                              enum:
                              - ''
                              - OnWorkflowCompletion
                              - OnWorkflowDeletion
                              - Never
                              type: string
                          type: object
                        artifactory:
                          properties:
                            passwordSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              type: string
                            usernameSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          properties:
                            accountKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              type: string
                            container:
                              type: string
                            endpoint:
                              type: string
                            useSDKCreds:
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        deleted:
                          type: boolean
                        from:
                          type: string
                        fromExpression:
                          type: string
                        gcs:
                          properties:
                            bucket:
                              type: string
                            key:
                              type: string
                            serviceAccountKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          properties:
                            branch:
                              type: string
                            depth:
                              format: int64
                              type: integer
                            disableSubmodules:
                              type: boolean
                            fetch:
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              type: boolean
                            insecureSkipTLS:
                              type: boolean
                            passwordSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              type: string
                            revision:
                              type: string
                            singleBranch:
                              type: boolean
                            sshPrivateKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        globalName:
                          type: string
                        hdfs:
                          properties:
                            addresses:
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              type: string
                            force:
                              type: boolean
                            hdfsUser:
                              type: string
                            krbCCacheSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              type: string
                            krbServicePrincipalName:
                              type: string
                            krbUsername:
                              type: string
                            path:
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          properties:
                            auth:
                              properties:
                                basicAuth:
                                  properties:
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  properties:
                                    clientCertSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  properties:
                                    clientIDSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              type: string
                          required:
                          - url
                          type: object
                        mode:
                          format: int32
                          maximum: 511
                          minimum: 0
                          type: integer
                        name:
                          pattern: ^[-a-zA-Z0-9_{}.]+$
                          type: string
                        optional:
                          type: boolean
                        oss:
                          properties:
                            accessKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              type: string
                            createBucketIfNotPresent:
                              type: boolean
                            endpoint:
                              type: string
                            key:
                              type: string
                            lifecycleRule:
                              properties:
                                markDeletionAfterDays:
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              type: string
                            useSDKCreds:
                              type: boolean
                          required:
                          - key
                          type: object
                        path:
                          type: string
                        plugin:
                          properties:
                            configuration:
                              type: string
                            connectionTimeoutSeconds:
                              format: int32
                              type: integer
                            key:
                              type: string
                            name:
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          properties:
                            data:
                              type: string
                          required:
                          - data
                          type: object
                        recurseMode:
                          type: boolean
                        s3:
                          properties:
                            accessKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              type: string
                            caSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              properties:
                                objectLocking:
                                  type: boolean
                              type: object
                            encryptionOptions:
                              properties:
                                enableEncryption:
                                  type: boolean
                                kmsEncryptionContext:
                                  type: string
                                kmsKeyId:
                                  type: string
                                serverSideCustomerKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              type: string
                            insecure:
                              type: boolean
                            key:
                              type: string
                            region:
                              type: string
                            roleARN:
                              type: string
                            secretKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              type: boolean
                          type: object
                        subPath:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  exitCode:
                    type: string
                  parameters:
                    items:
                      properties:
                        default:
                          type: string
                        description:
                          type: string
                        enum:
                          items:
                            type: string
                          minItems: 1
                          type: array
                        globalName:
                          type: string
                        name:
                          pattern: ^[-a-zA-Z0-9_]+$
                          type: string
                        value:
                          type: string
                        valueFrom:
                          properties:
                            configMapKeyRef:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            default:
                              type: string
                            event:
                              type: string
                            expression:
                              type: string
                            jqFilter:
                              type: string
                            jsonPath:
                              type: string
                            parameter:
                              type: string
                            path:
                              type: string
                            supplied:
                              type: object
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  result:
                    type: string
                type: object
              persistentVolumeClaims:
                items:
                  properties:
                    awsElasticBlockStore:
                      properties:
                        fsType:
                          type: string
                        partition:
                          format: int32
                          type: integer
                        readOnly:
                          type: boolean
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      properties:
                        cachingMode:
                          type: string
                        diskName:
                          type: string
                        diskURI:
                          type: string
                        fsType:
                          default: ext4
                          type: string
                        kind:
                          type: string
                        readOnly:
                          default: false
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      properties:
                        readOnly:
                          type: boolean
                        secretName:
                          type: string
                        shareName:
                          type: string
                      required:
                      - secretName
                      - shareName
                      type: object
                    cephfs:
                      properties:
                        monitors:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        path:
                          type: string
                        readOnly:
                          type: boolean
                        secretFile:
                          type: string
                        secretRef:
                          properties:
                            name:
                              default: ''
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        user:
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              default: ''
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              key:
                                type: string
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        name:
                          default: ''
                          type: string
                        optional:
                          type: boolean
                      type: object
                      x-kubernetes-map-type: atomic
                    csi:
                      properties:
                        driver:
                          type: string
                        fsType:
                          type: string
                        nodePublishSecretRef:
                          properties:
                            name:
                              default: ''
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        readOnly:
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          type: object
                      required:
                      - driver
                      type: object
                    downwardAPI:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              fieldRef:
                                properties:
                                  apiVersion:
                                    type: string
                                  fieldPath:
                                    type: string
                                required:
                                - fieldPath
                                type: object
                                x-kubernetes-map-type: atomic
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                              resourceFieldRef:
                                properties:
                                  containerName:
                                    type: string
                                  divisor:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  resource:
                                    type: string
                                required:
                                - resource
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    emptyDir:
                      properties:
                        medium:
                          type: string
                        sizeLimit:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                      type: object
                    ephemeral:
                      properties:
                        volumeClaimTemplate:
                          properties:
                            metadata:
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                finalizers:
                                  items:
                                    type: string
                                  type: array
                                generateName:
                                  type: string
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                name:
                                  type: string
                                namespace:
                                  type: string
                              type: object
                            spec:
                              properties:
                                accessModes:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                dataSource:
                                  properties:
                                    apiGroup:
                                      type: string
                                    kind:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                  x-kubernetes-map-type: atomic
                                dataSourceRef:
                                  properties:
                                    apiGroup:
                                      type: string
                                    kind:
                                      type: string
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                resources:
                                  properties:
                                    limits:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type: object
                                    requests:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      type: object
                                  type: object
                                selector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                storageClassName:
                                  type: string
                                volumeAttributesClassName:
                                  type: string
                                volumeMode:
                                  type: string
                                volumeName:
                                  type: string
                              type: object
                          required:
                          - spec
                          type: object
                      type: object
                    fc:
                      properties:
                        fsType:
                          type: string
                        lun:
                          format: int32
                          type: integer
                        readOnly:
                          type: boolean
                        targetWWNs:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        wwids:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    flexVolume:
                      properties:
                        driver:
                          type: string
                        fsType:
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          type: object
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              default: ''
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                      required:
                      - driver
                      type: object
                    flocker:
                      properties:
                        datasetName:
                          type: string
                        datasetUUID:
                          type: string
                      type: object
                    gcePersistentDisk:
                      properties:
                        fsType:
                          type: string
                        partition:
                          format: int32
                          type: integer
                        pdName:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
                      properties:
                        directory:
                          type: string
                        repository:
                          type: string
                        revision:
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
                      properties:
                        endpoints:
                          type: string
                        path:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
                      properties:
                        path:
                          type: string
                        type:
                          type: string
                      required:
                      - path
                      type: object
                    image:
                      properties:
                        pullPolicy:
                          type: string
                        reference:
                          type: string
                      type: object
                    iscsi:
                      properties:
                        chapAuthDiscovery:
                          type: boolean
                        chapAuthSession:
                          type: boolean
                        fsType:
                          type: string
                        initiatorName:
                          type: string
                        iqn:
                          type: string
                        iscsiInterface:
                          default: default
                          type: string
                        lun:
                          format: int32
                          type: integer
                        portals:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              default: ''
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        targetPortal:
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
                      type: string
                    nfs:
                      properties:
                        path:
                          type: string
                        readOnly:
                          type: boolean
                        server:
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
                      properties:
                        claimName:
                          type: string
                        readOnly:
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
                      properties:
                        fsType:
                          type: string
                        pdID:
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        volumeID:
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        sources:
                          items:
                            properties:
                              clusterTrustBundle:
                                properties:
                                  labelSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  name:
                                    type: string
                                  optional:
                                    type: boolean
                                  path:
                                    type: string
                                  signerName:
                                    type: string
                                required:
                                - path
                                type: object
                              configMap:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              downwardAPI:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        fieldRef:
                                          properties:
                                            apiVersion:
                                              type: string
                                            fieldPath:
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                        resourceFieldRef:
                                          properties:
                                            containerName:
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              secret:
                                properties:
                                  items:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        mode:
                                          format: int32
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              serviceAccountToken:
                                properties:
                                  audience:
                                    type: string
                                  expirationSeconds:
                                    format: int64
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    quobyte:
                      properties:
                        group:
                          type: string
                        readOnly:
                          type: boolean
                        registry:
                          type: string
                        tenant:
                          type: string
                        user:
                          type: string
                        volume:
                          type: string
                      required:
                      - registry
                      - volume
                      type: object
                    rbd:
                      properties:
                        fsType:
                          type: string
                        image:
                          type: string
                        keyring:
                          default: /etc/ceph/keyring
                          type: string
                        monitors:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        pool:
                          default: rbd
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              default: ''
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        user:
                          default: admin
                          type: string
                      required:
                      - image
                      - monitors
                      type: object
                    scaleIO:
                      properties:
                        fsType:
                          default: xfs
                          type: string
                        gateway:
                          type: string
                        protectionDomain:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              default: ''
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        sslEnabled:
                          type: boolean
                        storageMode:
                          default: ThinProvisioned
                          type: string
                        storagePool:
                          type: string
                        system:
                          type: string
                        volumeName:
                          type: string
                      required:
                      - gateway
                      - secretRef
                      - system
                      type: object
                    secret:
                      properties:
                        defaultMode:
                          format: int32
                          type: integer
                        items:
                          items:
                            properties:
                              key:
                                type: string
                              mode:
                                format: int32
                                type: integer
                              path:
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        optional:
                          type: boolean
                        secretName:
                          type: string
                      type: object
                    storageos:
                      properties:
                        fsType:
                          type: string
                        readOnly:
                          type: boolean
                        secretRef:
                          properties:
                            name:
                              default: ''
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        volumeName:
                          type: string
                        volumeNamespace:
                          type: string
                      type: object
                    vsphereVolume:
                      properties:
                        fsType:
                          type: string
                        storagePolicyID:
                          type: string
                        storagePolicyName:
                          type: string
                        volumePath:
                          type: string
                      required:
                      - volumePath
                      type: object
                  required:
                  - name
                  type: object
                type: array
              phase:
                type: string
              progress:
                type: string
              resourcesDuration:
                additionalProperties:
                  format: int64
                  type: integer
                type: object
              startedAt:
                format: date-time
                type: string
              storedTemplates:
                type: object
                x-kubernetes-map-type: atomic
                x-kubernetes-preserve-unknown-fields: true
              storedWorkflowTemplateSpec:
                type: object
                x-kubernetes-map-type: atomic
                x-kubernetes-preserve-unknown-fields: true
              synchronization:
                properties:
                  mutex:
                    properties:
                      holding:
                        items:
                          properties:
                            holder:
                              type: string
                            mutex:
                              type: string
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      waiting:
                        items:
                          properties:
                            holder:
                              type: string
                            mutex:
                              type: string
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                  semaphore:
                    properties:
                      holding:
                        items:
                          properties:
                            holders:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            semaphore:
                              type: string
                          type: object
                        type: array
                      waiting:
                        items:
                          properties:
                            holders:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            semaphore:
                              type: string
                          type: object
                        type: array
                    type: object
                type: object
              taskResultsCompletionStatus:
                additionalProperties:
                  type: boolean
                type: object
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  name: workflowtaskresults.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTaskResult
    listKind: WorkflowTaskResultList
    plural: workflowtaskresults
    singular: workflowtaskresult
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: 'WorkflowTaskResult is a used to communicate a result back to the controller. Unlike WorkflowTaskSet, it has

          more capacity. This is an internal type. Users should never create this resource directly, much like you would

          never create a ReplicaSet directly.'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object.

              Servers should convert recognized schemas to the latest internal value, and

              may reject unrecognized values.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents.

              Servers may infer this from the endpoint the client submits requests to.

              Cannot be updated.

              In CamelCase.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          message:
            type: string
          metadata:
            type: object
          outputs:
            description: Outputs hold parameters, artifacts, and results from a step
            properties:
              artifacts:
                description: Artifacts holds the list of output artifacts produced by a step
                items:
                  description: Artifact indicates an artifact to place at a specified path
                  properties:
                    archive:
                      description: Archive controls how the artifact will be saved to the artifact repository.
                      properties:
                        none:
                          description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                            files. Note that if the artifact is a directory, the artifact driver must support the ability to

                            save/load the directory appropriately.'
                          type: object
                        tar:
                          description: TarStrategy will tar and gzip the file or directory when saving
                          properties:
                            compressionLevel:
                              description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                Defaults to gzip.DefaultCompression.'
                              format: int32
                              type: integer
                          type: object
                        zip:
                          description: ZipStrategy will unzip zipped input artifacts
                          type: object
                      type: object
                    archiveLogs:
                      description: ArchiveLogs indicates if the container logs should be archived
                      type: boolean
                    artifactGC:
                      description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                      properties:
                        podMetadata:
                          description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        serviceAccountName:
                          description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                          type: string
                        strategy:
                          description: Strategy is the strategy to use.
                          enum:
                          - ''
                          - OnWorkflowCompletion
                          - OnWorkflowDeletion
                          - Never
                          type: string
                      type: object
                    artifactory:
                      description: Artifactory contains artifactory artifact location details
                      properties:
                        passwordSecret:
                          description: PasswordSecret is the secret selector to the repository password
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        url:
                          description: URL of the artifact
                          type: string
                        usernameSecret:
                          description: UsernameSecret is the secret selector to the repository username
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                      required:
                      - url
                      type: object
                    azure:
                      description: Azure contains Azure Storage artifact location details
                      properties:
                        accountKeySecret:
                          description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        blob:
                          description: Blob is the blob name (i.e., path) in the container where the artifact resides
                          type: string
                        container:
                          description: Container is the container where resources will be stored
                          type: string
                        endpoint:
                          description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                          type: string
                        useSDKCreds:
                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                          type: boolean
                      required:
                      - blob
                      - container
                      - endpoint
                      type: object
                    deleted:
                      description: Has this been deleted?
                      type: boolean
                    from:
                      description: From allows an artifact to reference an artifact from a previous step
                      type: string
                    fromExpression:
                      description: FromExpression, if defined, is evaluated to specify the value for the artifact
                      type: string
                    gcs:
                      description: GCS contains GCS artifact location details
                      properties:
                        bucket:
                          description: Bucket is the name of the bucket
                          type: string
                        key:
                          description: Key is the path in the bucket where the artifact resides
                          type: string
                        serviceAccountKeySecret:
                          description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                      required:
                      - key
                      type: object
                    git:
                      description: Git contains git artifact location details
                      properties:
                        branch:
                          description: Branch is the branch to fetch when `SingleBranch` is enabled
                          type: string
                        depth:
                          description: 'Depth specifies clones/fetches should be shallow and include the given

                            number of commits from the branch tip'
                          format: int64
                          type: integer
                        disableSubmodules:
                          description: DisableSubmodules disables submodules during git clone
                          type: boolean
                        fetch:
                          description: Fetch specifies a number of refs that should be fetched before checkout
                          items:
                            type: string
                          type: array
                        insecureIgnoreHostKey:
                          description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                          type: boolean
                        insecureSkipTLS:
                          description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                          type: boolean
                        passwordSecret:
                          description: PasswordSecret is the secret selector to the repository password
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        repo:
                          description: Repo is the git repository
                          type: string
                        revision:
                          description: Revision is the git commit, tag, branch to checkout
                          type: string
                        singleBranch:
                          description: SingleBranch enables single branch clone, using the `branch` parameter
                          type: boolean
                        sshPrivateKeySecret:
                          description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        usernameSecret:
                          description: UsernameSecret is the secret selector to the repository username
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                      required:
                      - repo
                      type: object
                    globalName:
                      description: 'GlobalName exports an output artifact to the global scope, making it available as

                        ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                      type: string
                    hdfs:
                      description: HDFS contains HDFS artifact location details
                      properties:
                        addresses:
                          description: Addresses is accessible addresses of HDFS name nodes
                          items:
                            type: string
                          type: array
                        dataTransferProtection:
                          description: 'DataTransferProtection is the protection level for HDFS data transfer.

                            It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                          type: string
                        force:
                          description: Force copies a file forcibly even if it exists
                          type: boolean
                        hdfsUser:
                          description: 'HDFSUser is the user to access HDFS file system.

                            It is ignored if either ccache or keytab is used.'
                          type: string
                        krbCCacheSecret:
                          description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                            Either ccache or keytab can be set to use Kerberos.'
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        krbConfigConfigMap:
                          description: 'KrbConfig is the configmap selector for Kerberos config as string

                            It must be set if either ccache or keytab is used.'
                          properties:
                            key:
                              description: The key to select.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the ConfigMap or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        krbKeytabSecret:
                          description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                            Either ccache or keytab can be set to use Kerberos.'
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        krbRealm:
                          description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                            It must be set if keytab is used.'
                          type: string
                        krbServicePrincipalName:
                          description: 'KrbServicePrincipalName is the principal name of Kerberos service

                            It must be set if either ccache or keytab is used.'
                          type: string
                        krbUsername:
                          description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                            It must be set if keytab is used.'
                          type: string
                        path:
                          description: Path is a file path in HDFS
                          type: string
                      required:
                      - path
                      type: object
                    http:
                      description: HTTP contains HTTP artifact location details
                      properties:
                        auth:
                          description: Auth contains information for client authentication
                          properties:
                            basicAuth:
                              description: BasicAuth describes the secret selectors required for basic authentication
                              properties:
                                passwordSecret:
                                  description: PasswordSecret is the secret selector to the repository password
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  description: UsernameSecret is the secret selector to the repository username
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            clientCert:
                              description: ClientCertAuth holds necessary information for client authentication via certificates
                              properties:
                                clientCertSecret:
                                  description: SecretKeySelector selects a key of a Secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                clientKeySecret:
                                  description: SecretKeySelector selects a key of a Secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            oauth2:
                              description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                              properties:
                                clientIDSecret:
                                  description: SecretKeySelector selects a key of a Secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                clientSecretSecret:
                                  description: SecretKeySelector selects a key of a Secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                endpointParams:
                                  items:
                                    description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                    properties:
                                      key:
                                        description: Name is the header name
                                        type: string
                                      value:
                                        description: Value is the literal value to use for the header
                                        type: string
                                    required:
                                    - key
                                    type: object
                                  type: array
                                scopes:
                                  items:
                                    type: string
                                  type: array
                                tokenURLSecret:
                                  description: SecretKeySelector selects a key of a Secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          type: object
                        headers:
                          description: Headers are an optional list of headers to send with HTTP requests for artifacts
                          items:
                            description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                            properties:
                              name:
                                description: Name is the header name
                                type: string
                              value:
                                description: Value is the literal value to use for the header
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                        url:
                          description: URL of the artifact
                          type: string
                      required:
                      - url
                      type: object
                    mode:
                      description: 'mode bits to use on this file, must be a value between 0 and 0777.

                        Set when loading input artifacts. It is recommended to set the mode value

                        to ensure the artifact has the expected permissions in your container.'
                      format: int32
                      maximum: 511
                      minimum: 0
                      type: integer
                    name:
                      description: name of the artifact. must be unique within a template's inputs/outputs.
                      pattern: ^[-a-zA-Z0-9_{}.]+$
                      type: string
                    optional:
                      description: Make Artifacts optional, if Artifacts doesn't generate or exist
                      type: boolean
                    oss:
                      description: OSS contains OSS artifact location details
                      properties:
                        accessKeySecret:
                          description: AccessKeySecret is the secret selector to the bucket's access key
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        bucket:
                          description: Bucket is the name of the bucket
                          type: string
                        createBucketIfNotPresent:
                          description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                          type: boolean
                        endpoint:
                          description: Endpoint is the hostname of the bucket endpoint
                          type: string
                        key:
                          description: Key is the path in the bucket where the artifact resides
                          type: string
                        lifecycleRule:
                          description: LifecycleRule specifies how to manage bucket's lifecycle
                          properties:
                            markDeletionAfterDays:
                              description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                              format: int32
                              type: integer
                            markInfrequentAccessAfterDays:
                              description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                              format: int32
                              type: integer
                          type: object
                        secretKeySecret:
                          description: SecretKeySecret is the secret selector to the bucket's secret key
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        securityToken:
                          description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                          type: string
                        useSDKCreds:
                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                          type: boolean
                      required:
                      - key
                      type: object
                    path:
                      description: Path is the container path to the artifact
                      type: string
                    plugin:
                      description: Plugin contains plugin artifact location details
                      properties:
                        configuration:
                          description: Configuration is the plugin defined configuration for the artifact driver plugin
                          type: string
                        connectionTimeoutSeconds:
                          description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                          format: int32
                          type: integer
                        key:
                          description: Key is the path in the artifact repository where the artifact resides
                          type: string
                        name:
                          description: Name is the name of the artifact driver plugin
                          type: string
                      required:
                      - key
                      type: object
                    raw:
                      description: Raw contains raw artifact location details
                      properties:
                        data:
                          description: Data is the string contents of the artifact
                          type: string
                      required:
                      - data
                      type: object
                    recurseMode:
                      description: If mode is set, apply the permission recursively into the artifact if it is a folder
                      type: boolean
                    s3:
                      description: S3 contains S3 artifact location details
                      properties:
                        accessKeySecret:
                          description: AccessKeySecret is the secret selector to the bucket's access key
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        bucket:
                          description: Bucket is the name of the bucket
                          type: string
                        caSecret:
                          description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        createBucketIfNotPresent:
                          description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                          properties:
                            objectLocking:
                              description: ObjectLocking Enable object locking
                              type: boolean
                          type: object
                        encryptionOptions:
                          description: S3EncryptionOptions used to determine encryption options during s3 operations
                          properties:
                            enableEncryption:
                              description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                              type: boolean
                            kmsEncryptionContext:
                              description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                              type: string
                            kmsKeyId:
                              description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                              type: string
                            serverSideCustomerKeySecret:
                              description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        endpoint:
                          description: Endpoint is the hostname of the bucket endpoint
                          type: string
                        insecure:
                          description: Insecure will connect to the service with TLS
                          type: boolean
                        key:
                          description: Key is the key in the bucket where the artifact resides
                          type: string
                        region:
                          description: Region contains the optional bucket region
                          type: string
                        roleARN:
                          description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                          type: string
                        secretKeySecret:
                          description: SecretKeySecret is the secret selector to the bucket's secret key
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        sessionTokenSecret:
                          description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                          properties:
                            key:
                              description: The key of the secret to select from.  Must be a valid secret key.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the Secret or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        useSDKCreds:
                          description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                          type: boolean
                      type: object
                    subPath:
                      description: SubPath allows an artifact to be sourced from a subpath within the specified source
                      type: string
                  required:
                  - name
                  type: object
                  x-kubernetes-validations:
                  - message: at most one artifact location can be specified
                    rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                type: array
              exitCode:
                description: ExitCode holds the exit code of a script template
                type: string
              parameters:
                description: Parameters holds the list of output parameters produced by a step
                items:
                  description: Parameter indicate a passed string parameter to a service template with an optional default value
                  properties:
                    default:
                      description: Default is the default value to use for an input parameter if a value was not supplied
                      type: string
                    description:
                      description: Description is the parameter description
                      type: string
                    enum:
                      description: Enum holds a list of string values to choose from, for the actual value of the parameter
                      items:
                        description: '* It''s JSON type is just string.

                          * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                          * It will marshall back to string - marshalling is not symmetric.'
                        type: string
                      minItems: 1
                      type: array
                    globalName:
                      description: 'GlobalName exports an output parameter to the global scope, making it available as

                        ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                      type: string
                    name:
                      description: Name is the parameter name
                      pattern: ^[-a-zA-Z0-9_]+$
                      type: string
                    value:
                      description: 'Value is the literal value to use for the parameter.

                        If specified in the context of an input parameter, any passed values take precedence over the specified value'
                      type: string
                    valueFrom:
                      description: ValueFrom is the source for the output parameter's value
                      properties:
                        configMapKeyRef:
                          description: ConfigMapKeyRef is configmap selector for input parameter configuration
                          properties:
                            key:
                              description: The key to select.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the ConfigMap or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        default:
                          description: Default specifies a value to be used if retrieving the value from the specified source fails
                          type: string
                        event:
                          description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                          type: string
                        expression:
                          description: Expression, if defined, is evaluated to specify the value for the parameter
                          type: string
                        jqFilter:
                          description: JQFilter expression against the resource object in resource templates
                          type: string
                        jsonPath:
                          description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                          type: string
                        parameter:
                          description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                            (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                          type: string
                        path:
                          description: Path in the container to retrieve an output parameter value from in container templates
                          type: string
                        supplied:
                          description: Supplied value to be filled in directly, either through the CLI, API, etc.
                          type: object
                      type: object
                  required:
                  - name
                  type: object
                type: array
              result:
                description: Result holds the result (stdout) of a script or container template, or the response body of an HTTP template
                type: string
            type: object
          phase:
            description: NodePhase is a label for the condition of a node at the current time.
            type: string
          progress:
            description: Progress in N/M format. N is number of task complete. M is number of tasks.
            type: string
        required:
        - metadata
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  name: workflowtasksets.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTaskSet
    listKind: WorkflowTaskSetList
    plural: workflowtasksets
    shortNames:
    - wfts
    singular: workflowtaskset
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object.

              Servers should convert recognized schemas to the latest internal value, and

              may reject unrecognized values.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents.

              Servers may infer this from the endpoint the client submits requests to.

              Cannot be updated.

              In CamelCase.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              tasks:
                additionalProperties:
                  properties:
                    activeDeadlineSeconds:
                      anyOf:
                      - type: integer
                      - type: string
                      x-kubernetes-int-or-string: true
                    affinity:
                      properties:
                        nodeAffinity:
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  preference:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  weight:
                                    format: int32
                                    type: integer
                                required:
                                - preference
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              properties:
                                nodeSelectorTerms:
                                  items:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                              - nodeSelectorTerms
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        podAffinity:
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  podAffinityTerm:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  labelSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        podAntiAffinity:
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  podAffinityTerm:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              items:
                                properties:
                                  labelSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    properties:
                                      matchExpressions:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            operator:
                                              type: string
                                            values:
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                      type: object
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    archiveLocation:
                      properties:
                        archiveLogs:
                          type: boolean
                        artifactory:
                          properties:
                            passwordSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              type: string
                            usernameSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          properties:
                            accountKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              type: string
                            container:
                              type: string
                            endpoint:
                              type: string
                            useSDKCreds:
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        gcs:
                          properties:
                            bucket:
                              type: string
                            key:
                              type: string
                            serviceAccountKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          properties:
                            branch:
                              type: string
                            depth:
                              format: int64
                              type: integer
                            disableSubmodules:
                              type: boolean
                            fetch:
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              type: boolean
                            insecureSkipTLS:
                              type: boolean
                            passwordSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              type: string
                            revision:
                              type: string
                            singleBranch:
                              type: boolean
                            sshPrivateKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        hdfs:
                          properties:
                            addresses:
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              type: string
                            force:
                              type: boolean
                            hdfsUser:
                              type: string
                            krbCCacheSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              type: string
                            krbServicePrincipalName:
                              type: string
                            krbUsername:
                              type: string
                            path:
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          properties:
                            auth:
                              properties:
                                basicAuth:
                                  properties:
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  properties:
                                    clientCertSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  properties:
                                    clientIDSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              type: string
                          required:
                          - url
                          type: object
                        oss:
                          properties:
                            accessKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              type: string
                            createBucketIfNotPresent:
                              type: boolean
                            endpoint:
                              type: string
                            key:
                              type: string
                            lifecycleRule:
                              properties:
                                markDeletionAfterDays:
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              type: string
                            useSDKCreds:
                              type: boolean
                          required:
                          - key
                          type: object
                        plugin:
                          properties:
                            configuration:
                              type: string
                            connectionTimeoutSeconds:
                              format: int32
                              type: integer
                            key:
                              type: string
                            name:
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          properties:
                            data:
                              type: string
                          required:
                          - data
                          type: object
                        s3:
                          properties:
                            accessKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              type: string
                            caSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              properties:
                                objectLocking:
                                  type: boolean
                              type: object
                            encryptionOptions:
                              properties:
                                enableEncryption:
                                  type: boolean
                                kmsEncryptionContext:
                                  type: string
                                kmsKeyId:
                                  type: string
                                serverSideCustomerKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              type: string
                            insecure:
                              type: boolean
                            key:
                              type: string
                            region:
                              type: string
                            roleARN:
                              type: string
                            secretKeySecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              type: boolean
                          type: object
                      type: object
                    automountServiceAccountToken:
                      type: boolean
                    container:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              type: string
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          items:
                            properties:
                              resourceName:
                                type: string
                              restartPolicy:
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          properties:
                            claims:
                              items:
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        restartPolicy:
                          type: string
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    containerSet:
                      properties:
                        containers:
                          items:
                            properties:
                              args:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              dependencies:
                                items:
                                  type: string
                                type: array
                              env:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                    valueFrom:
                                      properties:
                                        configMapKeyRef:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        fieldRef:
                                          properties:
                                            apiVersion:
                                              type: string
                                            fieldPath:
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        resourceFieldRef:
                                          properties:
                                            containerName:
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        secretKeyRef:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              envFrom:
                                items:
                                  properties:
                                    configMapRef:
                                      properties:
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    prefix:
                                      type: string
                                    secretRef:
                                      properties:
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              image:
                                type: string
                              imagePullPolicy:
                                type: string
                              lifecycle:
                                properties:
                                  postStart:
                                    properties:
                                      exec:
                                        properties:
                                          command:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        properties:
                                          host:
                                            type: string
                                          httpHeaders:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        properties:
                                          seconds:
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        properties:
                                          host:
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  preStop:
                                    properties:
                                      exec:
                                        properties:
                                          command:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        properties:
                                          host:
                                            type: string
                                          httpHeaders:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        properties:
                                          seconds:
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        properties:
                                          host:
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  stopSignal:
                                    type: string
                                type: object
                              livenessProbe:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    format: int32
                                    type: integer
                                  grpc:
                                    properties:
                                      port:
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    format: int32
                                    type: integer
                                type: object
                              name:
                                type: string
                              ports:
                                items:
                                  properties:
                                    containerPort:
                                      format: int32
                                      type: integer
                                    hostIP:
                                      type: string
                                    hostPort:
                                      format: int32
                                      type: integer
                                    name:
                                      type: string
                                    protocol:
                                      default: TCP
                                      type: string
                                  required:
                                  - containerPort
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - containerPort
                                - protocol
                                x-kubernetes-list-type: map
                              readinessProbe:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    format: int32
                                    type: integer
                                  grpc:
                                    properties:
                                      port:
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    format: int32
                                    type: integer
                                type: object
                              resizePolicy:
                                items:
                                  properties:
                                    resourceName:
                                      type: string
                                    restartPolicy:
                                      type: string
                                  required:
                                  - resourceName
                                  - restartPolicy
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              resources:
                                properties:
                                  claims:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        request:
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - name
                                    x-kubernetes-list-type: map
                                  limits:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    type: object
                                  requests:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    type: object
                                type: object
                              restartPolicy:
                                type: string
                              securityContext:
                                properties:
                                  allowPrivilegeEscalation:
                                    type: boolean
                                  appArmorProfile:
                                    properties:
                                      localhostProfile:
                                        type: string
                                      type:
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  capabilities:
                                    properties:
                                      add:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      drop:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  privileged:
                                    type: boolean
                                  procMount:
                                    type: string
                                  readOnlyRootFilesystem:
                                    type: boolean
                                  runAsGroup:
                                    format: int64
                                    type: integer
                                  runAsNonRoot:
                                    type: boolean
                                  runAsUser:
                                    format: int64
                                    type: integer
                                  seLinuxOptions:
                                    properties:
                                      level:
                                        type: string
                                      role:
                                        type: string
                                      type:
                                        type: string
                                      user:
                                        type: string
                                    type: object
                                  seccompProfile:
                                    properties:
                                      localhostProfile:
                                        type: string
                                      type:
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  windowsOptions:
                                    properties:
                                      gmsaCredentialSpec:
                                        type: string
                                      gmsaCredentialSpecName:
                                        type: string
                                      hostProcess:
                                        type: boolean
                                      runAsUserName:
                                        type: string
                                    type: object
                                type: object
                              startupProbe:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    format: int32
                                    type: integer
                                  grpc:
                                    properties:
                                      port:
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    format: int32
                                    type: integer
                                type: object
                              stdin:
                                type: boolean
                              stdinOnce:
                                type: boolean
                              terminationMessagePath:
                                type: string
                              terminationMessagePolicy:
                                type: string
                              tty:
                                type: boolean
                              volumeDevices:
                                items:
                                  properties:
                                    devicePath:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - devicePath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - devicePath
                                x-kubernetes-list-type: map
                              volumeMounts:
                                items:
                                  properties:
                                    mountPath:
                                      type: string
                                    mountPropagation:
                                      type: string
                                    name:
                                      type: string
                                    readOnly:
                                      type: boolean
                                    recursiveReadOnly:
                                      type: string
                                    subPath:
                                      type: string
                                    subPathExpr:
                                      type: string
                                  required:
                                  - mountPath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - mountPath
                                x-kubernetes-list-type: map
                              workingDir:
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        retryStrategy:
                          properties:
                            duration:
                              type: string
                            retries:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                          required:
                          - retries
                          type: object
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                      required:
                      - containers
                      type: object
                    daemon:
                      type: boolean
                    dag:
                      properties:
                        failFast:
                          type: boolean
                        target:
                          type: string
                        tasks:
                          items:
                            properties:
                              arguments:
                                properties:
                                  artifacts:
                                    items:
                                      properties:
                                        archive:
                                          properties:
                                            none:
                                              type: object
                                            tar:
                                              properties:
                                                compressionLevel:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            zip:
                                              type: object
                                          type: object
                                        archiveLogs:
                                          type: boolean
                                        artifactGC:
                                          properties:
                                            podMetadata:
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            serviceAccountName:
                                              type: string
                                            strategy:
                                              enum:
                                              - ''
                                              - OnWorkflowCompletion
                                              - OnWorkflowDeletion
                                              - Never
                                              type: string
                                          type: object
                                        artifactory:
                                          properties:
                                            passwordSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            url:
                                              type: string
                                            usernameSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - url
                                          type: object
                                        azure:
                                          properties:
                                            accountKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            blob:
                                              type: string
                                            container:
                                              type: string
                                            endpoint:
                                              type: string
                                            useSDKCreds:
                                              type: boolean
                                          required:
                                          - blob
                                          - container
                                          - endpoint
                                          type: object
                                        deleted:
                                          type: boolean
                                        from:
                                          type: string
                                        fromExpression:
                                          type: string
                                        gcs:
                                          properties:
                                            bucket:
                                              type: string
                                            key:
                                              type: string
                                            serviceAccountKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - key
                                          type: object
                                        git:
                                          properties:
                                            branch:
                                              type: string
                                            depth:
                                              format: int64
                                              type: integer
                                            disableSubmodules:
                                              type: boolean
                                            fetch:
                                              items:
                                                type: string
                                              type: array
                                            insecureIgnoreHostKey:
                                              type: boolean
                                            insecureSkipTLS:
                                              type: boolean
                                            passwordSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            repo:
                                              type: string
                                            revision:
                                              type: string
                                            singleBranch:
                                              type: boolean
                                            sshPrivateKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - repo
                                          type: object
                                        globalName:
                                          type: string
                                        hdfs:
                                          properties:
                                            addresses:
                                              items:
                                                type: string
                                              type: array
                                            dataTransferProtection:
                                              type: string
                                            force:
                                              type: boolean
                                            hdfsUser:
                                              type: string
                                            krbCCacheSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbConfigConfigMap:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbKeytabSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbRealm:
                                              type: string
                                            krbServicePrincipalName:
                                              type: string
                                            krbUsername:
                                              type: string
                                            path:
                                              type: string
                                          required:
                                          - path
                                          type: object
                                        http:
                                          properties:
                                            auth:
                                              properties:
                                                basicAuth:
                                                  properties:
                                                    passwordSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    usernameSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                clientCert:
                                                  properties:
                                                    clientCertSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                oauth2:
                                                  properties:
                                                    clientIDSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientSecretSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    endpointParams:
                                                      items:
                                                        properties:
                                                          key:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - key
                                                        type: object
                                                      type: array
                                                    scopes:
                                                      items:
                                                        type: string
                                                      type: array
                                                    tokenURLSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                              type: object
                                            headers:
                                              items:
                                                properties:
                                                  name:
                                                    type: string
                                                  value:
                                                    type: string
                                                required:
                                                - name
                                                - value
                                                type: object
                                              type: array
                                            url:
                                              type: string
                                          required:
                                          - url
                                          type: object
                                        mode:
                                          format: int32
                                          maximum: 511
                                          minimum: 0
                                          type: integer
                                        name:
                                          pattern: ^[-a-zA-Z0-9_{}.]+$
                                          type: string
                                        optional:
                                          type: boolean
                                        oss:
                                          properties:
                                            accessKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              type: string
                                            createBucketIfNotPresent:
                                              type: boolean
                                            endpoint:
                                              type: string
                                            key:
                                              type: string
                                            lifecycleRule:
                                              properties:
                                                markDeletionAfterDays:
                                                  format: int32
                                                  type: integer
                                                markInfrequentAccessAfterDays:
                                                  format: int32
                                                  type: integer
                                              type: object
                                            secretKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            securityToken:
                                              type: string
                                            useSDKCreds:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                        path:
                                          type: string
                                        plugin:
                                          properties:
                                            configuration:
                                              type: string
                                            connectionTimeoutSeconds:
                                              format: int32
                                              type: integer
                                            key:
                                              type: string
                                            name:
                                              type: string
                                          required:
                                          - key
                                          type: object
                                        raw:
                                          properties:
                                            data:
                                              type: string
                                          required:
                                          - data
                                          type: object
                                        recurseMode:
                                          type: boolean
                                        s3:
                                          properties:
                                            accessKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              type: string
                                            caSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            createBucketIfNotPresent:
                                              properties:
                                                objectLocking:
                                                  type: boolean
                                              type: object
                                            encryptionOptions:
                                              properties:
                                                enableEncryption:
                                                  type: boolean
                                                kmsEncryptionContext:
                                                  type: string
                                                kmsKeyId:
                                                  type: string
                                                serverSideCustomerKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            endpoint:
                                              type: string
                                            insecure:
                                              type: boolean
                                            key:
                                              type: string
                                            region:
                                              type: string
                                            roleARN:
                                              type: string
                                            secretKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            sessionTokenSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            useSDKCreds:
                                              type: boolean
                                          type: object
                                        subPath:
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                  parameters:
                                    items:
                                      properties:
                                        default:
                                          type: string
                                        description:
                                          type: string
                                        enum:
                                          items:
                                            type: string
                                          minItems: 1
                                          type: array
                                        globalName:
                                          type: string
                                        name:
                                          pattern: ^[-a-zA-Z0-9_]+$
                                          type: string
                                        value:
                                          type: string
                                        valueFrom:
                                          properties:
                                            configMapKeyRef:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            default:
                                              type: string
                                            event:
                                              type: string
                                            expression:
                                              type: string
                                            jqFilter:
                                              type: string
                                            jsonPath:
                                              type: string
                                            parameter:
                                              type: string
                                            path:
                                              type: string
                                            supplied:
                                              type: object
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                type: object
                              continueOn:
                                properties:
                                  error:
                                    type: boolean
                                  failed:
                                    type: boolean
                                type: object
                              dependencies:
                                items:
                                  type: string
                                type: array
                              depends:
                                type: string
                              hooks:
                                additionalProperties:
                                  properties:
                                    arguments:
                                      properties:
                                        artifacts:
                                          items:
                                            properties:
                                              archive:
                                                properties:
                                                  none:
                                                    type: object
                                                  tar:
                                                    properties:
                                                      compressionLevel:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  zip:
                                                    type: object
                                                type: object
                                              archiveLogs:
                                                type: boolean
                                              artifactGC:
                                                properties:
                                                  podMetadata:
                                                    properties:
                                                      annotations:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                      labels:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                    type: object
                                                  serviceAccountName:
                                                    type: string
                                                  strategy:
                                                    enum:
                                                    - ''
                                                    - OnWorkflowCompletion
                                                    - OnWorkflowDeletion
                                                    - Never
                                                    type: string
                                                type: object
                                              artifactory:
                                                properties:
                                                  passwordSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  url:
                                                    type: string
                                                  usernameSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - url
                                                type: object
                                              azure:
                                                properties:
                                                  accountKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  blob:
                                                    type: string
                                                  container:
                                                    type: string
                                                  endpoint:
                                                    type: string
                                                  useSDKCreds:
                                                    type: boolean
                                                required:
                                                - blob
                                                - container
                                                - endpoint
                                                type: object
                                              deleted:
                                                type: boolean
                                              from:
                                                type: string
                                              fromExpression:
                                                type: string
                                              gcs:
                                                properties:
                                                  bucket:
                                                    type: string
                                                  key:
                                                    type: string
                                                  serviceAccountKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - key
                                                type: object
                                              git:
                                                properties:
                                                  branch:
                                                    type: string
                                                  depth:
                                                    format: int64
                                                    type: integer
                                                  disableSubmodules:
                                                    type: boolean
                                                  fetch:
                                                    items:
                                                      type: string
                                                    type: array
                                                  insecureIgnoreHostKey:
                                                    type: boolean
                                                  insecureSkipTLS:
                                                    type: boolean
                                                  passwordSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  repo:
                                                    type: string
                                                  revision:
                                                    type: string
                                                  singleBranch:
                                                    type: boolean
                                                  sshPrivateKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - repo
                                                type: object
                                              globalName:
                                                type: string
                                              hdfs:
                                                properties:
                                                  addresses:
                                                    items:
                                                      type: string
                                                    type: array
                                                  dataTransferProtection:
                                                    type: string
                                                  force:
                                                    type: boolean
                                                  hdfsUser:
                                                    type: string
                                                  krbCCacheSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbConfigConfigMap:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbKeytabSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbRealm:
                                                    type: string
                                                  krbServicePrincipalName:
                                                    type: string
                                                  krbUsername:
                                                    type: string
                                                  path:
                                                    type: string
                                                required:
                                                - path
                                                type: object
                                              http:
                                                properties:
                                                  auth:
                                                    properties:
                                                      basicAuth:
                                                        properties:
                                                          passwordSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          usernameSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      clientCert:
                                                        properties:
                                                          clientCertSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientKeySecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      oauth2:
                                                        properties:
                                                          clientIDSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientSecretSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          endpointParams:
                                                            items:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                value:
                                                                  type: string
                                                              required:
                                                              - key
                                                              type: object
                                                            type: array
                                                          scopes:
                                                            items:
                                                              type: string
                                                            type: array
                                                          tokenURLSecret:
                                                            properties:
                                                              key:
                                                                type: string
                                                              name:
                                                                default: ''
                                                                type: string
                                                              optional:
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                    type: object
                                                  headers:
                                                    items:
                                                      properties:
                                                        name:
                                                          type: string
                                                        value:
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  url:
                                                    type: string
                                                required:
                                                - url
                                                type: object
                                              mode:
                                                format: int32
                                                maximum: 511
                                                minimum: 0
                                                type: integer
                                              name:
                                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                                type: string
                                              optional:
                                                type: boolean
                                              oss:
                                                properties:
                                                  accessKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    type: string
                                                  createBucketIfNotPresent:
                                                    type: boolean
                                                  endpoint:
                                                    type: string
                                                  key:
                                                    type: string
                                                  lifecycleRule:
                                                    properties:
                                                      markDeletionAfterDays:
                                                        format: int32
                                                        type: integer
                                                      markInfrequentAccessAfterDays:
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  secretKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  securityToken:
                                                    type: string
                                                  useSDKCreds:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                              path:
                                                type: string
                                              plugin:
                                                properties:
                                                  configuration:
                                                    type: string
                                                  connectionTimeoutSeconds:
                                                    format: int32
                                                    type: integer
                                                  key:
                                                    type: string
                                                  name:
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              raw:
                                                properties:
                                                  data:
                                                    type: string
                                                required:
                                                - data
                                                type: object
                                              recurseMode:
                                                type: boolean
                                              s3:
                                                properties:
                                                  accessKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    type: string
                                                  caSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  createBucketIfNotPresent:
                                                    properties:
                                                      objectLocking:
                                                        type: boolean
                                                    type: object
                                                  encryptionOptions:
                                                    properties:
                                                      enableEncryption:
                                                        type: boolean
                                                      kmsEncryptionContext:
                                                        type: string
                                                      kmsKeyId:
                                                        type: string
                                                      serverSideCustomerKeySecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  endpoint:
                                                    type: string
                                                  insecure:
                                                    type: boolean
                                                  key:
                                                    type: string
                                                  region:
                                                    type: string
                                                  roleARN:
                                                    type: string
                                                  secretKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  sessionTokenSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  useSDKCreds:
                                                    type: boolean
                                                type: object
                                              subPath:
                                                type: string
                                            required:
                                            - name
                                            type: object
                                          type: array
                                        parameters:
                                          items:
                                            properties:
                                              default:
                                                type: string
                                              description:
                                                type: string
                                              enum:
                                                items:
                                                  type: string
                                                minItems: 1
                                                type: array
                                              globalName:
                                                type: string
                                              name:
                                                pattern: ^[-a-zA-Z0-9_]+$
                                                type: string
                                              value:
                                                type: string
                                              valueFrom:
                                                properties:
                                                  configMapKeyRef:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  default:
                                                    type: string
                                                  event:
                                                    type: string
                                                  expression:
                                                    type: string
                                                  jqFilter:
                                                    type: string
                                                  jsonPath:
                                                    type: string
                                                  parameter:
                                                    type: string
                                                  path:
                                                    type: string
                                                  supplied:
                                                    type: object
                                                type: object
                                            required:
                                            - name
                                            type: object
                                          type: array
                                      type: object
                                    expression:
                                      type: string
                                    template:
                                      type: string
                                    templateRef:
                                      properties:
                                        clusterScope:
                                          type: boolean
                                        name:
                                          type: string
                                        template:
                                          type: string
                                      type: object
                                  type: object
                                type: object
                              inline:
                                x-kubernetes-preserve-unknown-fields: true
                              name:
                                maxLength: 128
                                pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                type: string
                              onExit:
                                type: string
                              template:
                                type: string
                              templateRef:
                                properties:
                                  clusterScope:
                                    type: boolean
                                  name:
                                    type: string
                                  template:
                                    type: string
                                type: object
                              when:
                                type: string
                              withItems:
                                x-kubernetes-preserve-unknown-fields: true
                              withParam:
                                type: string
                              withSequence:
                                properties:
                                  count:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  end:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  format:
                                    type: string
                                  start:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                type: object
                            required:
                            - name
                            type: object
                          maxItems: 200
                          minItems: 1
                          type: array
                      required:
                      - tasks
                      type: object
                    data:
                      properties:
                        source:
                          properties:
                            artifactPaths:
                              properties:
                                archive:
                                  properties:
                                    none:
                                      type: object
                                    tar:
                                      properties:
                                        compressionLevel:
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      type: object
                                  type: object
                                archiveLogs:
                                  type: boolean
                                artifactGC:
                                  properties:
                                    podMetadata:
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      type: string
                                    strategy:
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  properties:
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      type: string
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  properties:
                                    accountKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      type: string
                                    container:
                                      type: string
                                    endpoint:
                                      type: string
                                    useSDKCreds:
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  type: boolean
                                from:
                                  type: string
                                fromExpression:
                                  type: string
                                gcs:
                                  properties:
                                    bucket:
                                      type: string
                                    key:
                                      type: string
                                    serviceAccountKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  properties:
                                    branch:
                                      type: string
                                    depth:
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      type: boolean
                                    fetch:
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      type: boolean
                                    insecureSkipTLS:
                                      type: boolean
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      type: string
                                    revision:
                                      type: string
                                    singleBranch:
                                      type: boolean
                                    sshPrivateKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  type: string
                                hdfs:
                                  properties:
                                    addresses:
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      type: string
                                    force:
                                      type: boolean
                                    hdfsUser:
                                      type: string
                                    krbCCacheSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      type: string
                                    krbServicePrincipalName:
                                      type: string
                                    krbUsername:
                                      type: string
                                    path:
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  properties:
                                    auth:
                                      properties:
                                        basicAuth:
                                          properties:
                                            passwordSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          properties:
                                            clientCertSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          properties:
                                            clientIDSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  value:
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  type: boolean
                                oss:
                                  properties:
                                    accessKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      type: string
                                    createBucketIfNotPresent:
                                      type: boolean
                                    endpoint:
                                      type: string
                                    key:
                                      type: string
                                    lifecycleRule:
                                      properties:
                                        markDeletionAfterDays:
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      type: string
                                    useSDKCreds:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  type: string
                                plugin:
                                  properties:
                                    configuration:
                                      type: string
                                    connectionTimeoutSeconds:
                                      format: int32
                                      type: integer
                                    key:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  properties:
                                    data:
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  type: boolean
                                s3:
                                  properties:
                                    accessKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      type: string
                                    caSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      properties:
                                        objectLocking:
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      properties:
                                        enableEncryption:
                                          type: boolean
                                        kmsEncryptionContext:
                                          type: string
                                        kmsKeyId:
                                          type: string
                                        serverSideCustomerKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      type: string
                                    insecure:
                                      type: boolean
                                    key:
                                      type: string
                                    region:
                                      type: string
                                    roleARN:
                                      type: string
                                    secretKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      type: boolean
                                  type: object
                                subPath:
                                  type: string
                              required:
                              - name
                              type: object
                          type: object
                        transformation:
                          items:
                            properties:
                              expression:
                                type: string
                            required:
                            - expression
                            type: object
                          type: array
                      required:
                      - source
                      - transformation
                      type: object
                    executor:
                      properties:
                        serviceAccountName:
                          type: string
                      type: object
                    failFast:
                      type: boolean
                    hostAliases:
                      items:
                        properties:
                          hostnames:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          ip:
                            type: string
                        required:
                        - ip
                        type: object
                      type: array
                    http:
                      properties:
                        body:
                          type: string
                        bodyFrom:
                          properties:
                            bytes:
                              format: byte
                              type: string
                          type: object
                        headers:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        insecureSkipVerify:
                          type: boolean
                        method:
                          type: string
                        successCondition:
                          type: string
                        timeoutSeconds:
                          format: int64
                          type: integer
                        url:
                          type: string
                      required:
                      - url
                      type: object
                    initContainers:
                      items:
                        properties:
                          args:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                                valueFrom:
                                  properties:
                                    configMapKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      properties:
                                        apiVersion:
                                          type: string
                                        fieldPath:
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      properties:
                                        containerName:
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            items:
                              properties:
                                configMapRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  type: string
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            type: string
                          imagePullPolicy:
                            type: string
                          lifecycle:
                            properties:
                              postStart:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    properties:
                                      seconds:
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    properties:
                                      seconds:
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                type: string
                            type: object
                          livenessProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          mirrorVolumeMounts:
                            type: boolean
                          name:
                            type: string
                          ports:
                            items:
                              properties:
                                containerPort:
                                  format: int32
                                  type: integer
                                hostIP:
                                  type: string
                                hostPort:
                                  format: int32
                                  type: integer
                                name:
                                  type: string
                                protocol:
                                  default: TCP
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            items:
                              properties:
                                resourceName:
                                  type: string
                                restartPolicy:
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            properties:
                              claims:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    request:
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type: object
                            type: object
                          restartPolicy:
                            type: string
                          securityContext:
                            properties:
                              allowPrivilegeEscalation:
                                type: boolean
                              appArmorProfile:
                                properties:
                                  localhostProfile:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                properties:
                                  add:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                type: boolean
                              procMount:
                                type: string
                              readOnlyRootFilesystem:
                                type: boolean
                              runAsGroup:
                                format: int64
                                type: integer
                              runAsNonRoot:
                                type: boolean
                              runAsUser:
                                format: int64
                                type: integer
                              seLinuxOptions:
                                properties:
                                  level:
                                    type: string
                                  role:
                                    type: string
                                  type:
                                    type: string
                                  user:
                                    type: string
                                type: object
                              seccompProfile:
                                properties:
                                  localhostProfile:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                properties:
                                  gmsaCredentialSpec:
                                    type: string
                                  gmsaCredentialSpecName:
                                    type: string
                                  hostProcess:
                                    type: boolean
                                  runAsUserName:
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            type: boolean
                          stdinOnce:
                            type: boolean
                          terminationMessagePath:
                            type: string
                          terminationMessagePolicy:
                            type: string
                          tty:
                            type: boolean
                          volumeDevices:
                            items:
                              properties:
                                devicePath:
                                  type: string
                                name:
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            items:
                              properties:
                                mountPath:
                                  type: string
                                mountPropagation:
                                  type: string
                                name:
                                  type: string
                                readOnly:
                                  type: boolean
                                recursiveReadOnly:
                                  type: string
                                subPath:
                                  type: string
                                subPathExpr:
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            type: string
                        required:
                        - name
                        type: object
                      type: array
                    inputs:
                      properties:
                        artifacts:
                          items:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        parameters:
                          items:
                            properties:
                              default:
                                type: string
                              description:
                                type: string
                              enum:
                                items:
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                type: string
                              name:
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    type: string
                                  event:
                                    type: string
                                  expression:
                                    type: string
                                  jqFilter:
                                    type: string
                                  jsonPath:
                                    type: string
                                  parameter:
                                    type: string
                                  path:
                                    type: string
                                  supplied:
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          maxItems: 500
                          type: array
                      type: object
                    memoize:
                      properties:
                        cache:
                          properties:
                            configMap:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - configMap
                          type: object
                        key:
                          type: string
                        maxAge:
                          type: string
                      required:
                      - cache
                      - key
                      - maxAge
                      type: object
                    metadata:
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    metrics:
                      properties:
                        prometheus:
                          items:
                            properties:
                              counter:
                                properties:
                                  value:
                                    minLength: 1
                                    type: string
                                required:
                                - value
                                type: object
                              gauge:
                                properties:
                                  operation:
                                    enum:
                                    - Set
                                    - Add
                                    - Sub
                                    type: string
                                  realtime:
                                    type: boolean
                                  value:
                                    maxLength: 256
                                    minLength: 1
                                    type: string
                                required:
                                - realtime
                                - value
                                type: object
                              help:
                                minLength: 1
                                type: string
                              histogram:
                                properties:
                                  buckets:
                                    items:
                                      type: number
                                    type: array
                                  value:
                                    minLength: 1
                                    type: string
                                required:
                                - buckets
                                - value
                                type: object
                              labels:
                                items:
                                  properties:
                                    key:
                                      pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - key
                                  - value
                                  type: object
                                type: array
                              name:
                                pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                type: string
                              when:
                                type: string
                            required:
                            - help
                            - name
                            type: object
                          maxItems: 100
                          type: array
                      required:
                      - prometheus
                      type: object
                    name:
                      maxLength: 128
                      pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                      type: string
                    nodeSelector:
                      additionalProperties:
                        type: string
                      type: object
                    outputs:
                      properties:
                        artifacts:
                          items:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        exitCode:
                          type: string
                        parameters:
                          items:
                            properties:
                              default:
                                type: string
                              description:
                                type: string
                              enum:
                                items:
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                type: string
                              name:
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    type: string
                                  event:
                                    type: string
                                  expression:
                                    type: string
                                  jqFilter:
                                    type: string
                                  jsonPath:
                                    type: string
                                  parameter:
                                    type: string
                                  path:
                                    type: string
                                  supplied:
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        result:
                          type: string
                      type: object
                    parallelism:
                      format: int64
                      minimum: 1
                      type: integer
                    plugin:
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    podSpecPatch:
                      type: string
                    priorityClassName:
                      type: string
                    resource:
                      properties:
                        action:
                          enum:
                          - get
                          - create
                          - apply
                          - delete
                          - replace
                          - patch
                          type: string
                        failureCondition:
                          type: string
                        flags:
                          items:
                            type: string
                          type: array
                        manifest:
                          type: string
                        manifestFrom:
                          properties:
                            artifact:
                              properties:
                                archive:
                                  properties:
                                    none:
                                      type: object
                                    tar:
                                      properties:
                                        compressionLevel:
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      type: object
                                  type: object
                                archiveLogs:
                                  type: boolean
                                artifactGC:
                                  properties:
                                    podMetadata:
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      type: string
                                    strategy:
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  properties:
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      type: string
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  properties:
                                    accountKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      type: string
                                    container:
                                      type: string
                                    endpoint:
                                      type: string
                                    useSDKCreds:
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  type: boolean
                                from:
                                  type: string
                                fromExpression:
                                  type: string
                                gcs:
                                  properties:
                                    bucket:
                                      type: string
                                    key:
                                      type: string
                                    serviceAccountKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  properties:
                                    branch:
                                      type: string
                                    depth:
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      type: boolean
                                    fetch:
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      type: boolean
                                    insecureSkipTLS:
                                      type: boolean
                                    passwordSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      type: string
                                    revision:
                                      type: string
                                    singleBranch:
                                      type: boolean
                                    sshPrivateKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  type: string
                                hdfs:
                                  properties:
                                    addresses:
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      type: string
                                    force:
                                      type: boolean
                                    hdfsUser:
                                      type: string
                                    krbCCacheSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      type: string
                                    krbServicePrincipalName:
                                      type: string
                                    krbUsername:
                                      type: string
                                    path:
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  properties:
                                    auth:
                                      properties:
                                        basicAuth:
                                          properties:
                                            passwordSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          properties:
                                            clientCertSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          properties:
                                            clientIDSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  value:
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  type: boolean
                                oss:
                                  properties:
                                    accessKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      type: string
                                    createBucketIfNotPresent:
                                      type: boolean
                                    endpoint:
                                      type: string
                                    key:
                                      type: string
                                    lifecycleRule:
                                      properties:
                                        markDeletionAfterDays:
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      type: string
                                    useSDKCreds:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  type: string
                                plugin:
                                  properties:
                                    configuration:
                                      type: string
                                    connectionTimeoutSeconds:
                                      format: int32
                                      type: integer
                                    key:
                                      type: string
                                    name:
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  properties:
                                    data:
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  type: boolean
                                s3:
                                  properties:
                                    accessKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      type: string
                                    caSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      properties:
                                        objectLocking:
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      properties:
                                        enableEncryption:
                                          type: boolean
                                        kmsEncryptionContext:
                                          type: string
                                        kmsKeyId:
                                          type: string
                                        serverSideCustomerKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      type: string
                                    insecure:
                                      type: boolean
                                    key:
                                      type: string
                                    region:
                                      type: string
                                    roleARN:
                                      type: string
                                    secretKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      type: boolean
                                  type: object
                                subPath:
                                  type: string
                              required:
                              - name
                              type: object
                          required:
                          - artifact
                          type: object
                        mergeStrategy:
                          enum:
                          - strategic
                          - merge
                          - json
                          type: string
                        setOwnerReference:
                          type: boolean
                        successCondition:
                          type: string
                      required:
                      - action
                      type: object
                    retryStrategy:
                      properties:
                        affinity:
                          properties:
                            nodeAntiAffinity:
                              type: object
                          type: object
                        backoff:
                          properties:
                            cap:
                              type: string
                            duration:
                              type: string
                            factor:
                              anyOf:
                              - type: integer
                              - type: string
                              x-kubernetes-int-or-string: true
                            maxDuration:
                              type: string
                          type: object
                        expression:
                          type: string
                        limit:
                          anyOf:
                          - type: integer
                          - type: string
                          x-kubernetes-int-or-string: true
                        retryPolicy:
                          enum:
                          - Always
                          - OnFailure
                          - OnError
                          - OnTransientError
                          type: string
                      type: object
                    schedulerName:
                      type: string
                    script:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              type: string
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          items:
                            properties:
                              resourceName:
                                type: string
                              restartPolicy:
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          properties:
                            claims:
                              items:
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        restartPolicy:
                          type: string
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        source:
                          type: string
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    securityContext:
                      properties:
                        appArmorProfile:
                          properties:
                            localhostProfile:
                              type: string
                            type:
                              type: string
                          required:
                          - type
                          type: object
                        fsGroup:
                          format: int64
                          type: integer
                        fsGroupChangePolicy:
                          type: string
                        runAsGroup:
                          format: int64
                          type: integer
                        runAsNonRoot:
                          type: boolean
                        runAsUser:
                          format: int64
                          type: integer
                        seLinuxChangePolicy:
                          type: string
                        seLinuxOptions:
                          properties:
                            level:
                              type: string
                            role:
                              type: string
                            type:
                              type: string
                            user:
                              type: string
                          type: object
                        seccompProfile:
                          properties:
                            localhostProfile:
                              type: string
                            type:
                              type: string
                          required:
                          - type
                          type: object
                        supplementalGroups:
                          items:
                            format: int64
                            type: integer
                          type: array
                          x-kubernetes-list-type: atomic
                        supplementalGroupsPolicy:
                          type: string
                        sysctls:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        windowsOptions:
                          properties:
                            gmsaCredentialSpec:
                              type: string
                            gmsaCredentialSpecName:
                              type: string
                            hostProcess:
                              type: boolean
                            runAsUserName:
                              type: string
                          type: object
                      type: object
                    serviceAccountName:
                      type: string
                    sidecars:
                      items:
                        properties:
                          args:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                                valueFrom:
                                  properties:
                                    configMapKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      properties:
                                        apiVersion:
                                          type: string
                                        fieldPath:
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      properties:
                                        containerName:
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            items:
                              properties:
                                configMapRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  type: string
                                secretRef:
                                  properties:
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            type: string
                          imagePullPolicy:
                            type: string
                          lifecycle:
                            properties:
                              postStart:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    properties:
                                      seconds:
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                properties:
                                  exec:
                                    properties:
                                      command:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    properties:
                                      host:
                                        type: string
                                      httpHeaders:
                                        items:
                                          properties:
                                            name:
                                              type: string
                                            value:
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    properties:
                                      seconds:
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    properties:
                                      host:
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                type: string
                            type: object
                          livenessProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          mirrorVolumeMounts:
                            type: boolean
                          name:
                            type: string
                          ports:
                            items:
                              properties:
                                containerPort:
                                  format: int32
                                  type: integer
                                hostIP:
                                  type: string
                                hostPort:
                                  format: int32
                                  type: integer
                                name:
                                  type: string
                                protocol:
                                  default: TCP
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            items:
                              properties:
                                resourceName:
                                  type: string
                                restartPolicy:
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            properties:
                              claims:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    request:
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                type: object
                            type: object
                          restartPolicy:
                            type: string
                          securityContext:
                            properties:
                              allowPrivilegeEscalation:
                                type: boolean
                              appArmorProfile:
                                properties:
                                  localhostProfile:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                properties:
                                  add:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                type: boolean
                              procMount:
                                type: string
                              readOnlyRootFilesystem:
                                type: boolean
                              runAsGroup:
                                format: int64
                                type: integer
                              runAsNonRoot:
                                type: boolean
                              runAsUser:
                                format: int64
                                type: integer
                              seLinuxOptions:
                                properties:
                                  level:
                                    type: string
                                  role:
                                    type: string
                                  type:
                                    type: string
                                  user:
                                    type: string
                                type: object
                              seccompProfile:
                                properties:
                                  localhostProfile:
                                    type: string
                                  type:
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                properties:
                                  gmsaCredentialSpec:
                                    type: string
                                  gmsaCredentialSpecName:
                                    type: string
                                  hostProcess:
                                    type: boolean
                                  runAsUserName:
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                format: int32
                                type: integer
                              grpc:
                                properties:
                                  port:
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                format: int32
                                type: integer
                              periodSeconds:
                                format: int32
                                type: integer
                              successThreshold:
                                format: int32
                                type: integer
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                format: int64
                                type: integer
                              timeoutSeconds:
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            type: boolean
                          stdinOnce:
                            type: boolean
                          terminationMessagePath:
                            type: string
                          terminationMessagePolicy:
                            type: string
                          tty:
                            type: boolean
                          volumeDevices:
                            items:
                              properties:
                                devicePath:
                                  type: string
                                name:
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            items:
                              properties:
                                mountPath:
                                  type: string
                                mountPropagation:
                                  type: string
                                name:
                                  type: string
                                readOnly:
                                  type: boolean
                                recursiveReadOnly:
                                  type: string
                                subPath:
                                  type: string
                                subPathExpr:
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            type: string
                        required:
                        - name
                        type: object
                      type: array
                    steps:
                      items:
                        properties:
                          steps:
                            items:
                              properties:
                                arguments:
                                  properties:
                                    artifacts:
                                      items:
                                        properties:
                                          archive:
                                            properties:
                                              none:
                                                type: object
                                              tar:
                                                properties:
                                                  compressionLevel:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              zip:
                                                type: object
                                            type: object
                                          archiveLogs:
                                            type: boolean
                                          artifactGC:
                                            properties:
                                              podMetadata:
                                                properties:
                                                  annotations:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                  labels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                              serviceAccountName:
                                                type: string
                                              strategy:
                                                enum:
                                                - ''
                                                - OnWorkflowCompletion
                                                - OnWorkflowDeletion
                                                - Never
                                                type: string
                                            type: object
                                          artifactory:
                                            properties:
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              url:
                                                type: string
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - url
                                            type: object
                                          azure:
                                            properties:
                                              accountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              blob:
                                                type: string
                                              container:
                                                type: string
                                              endpoint:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - blob
                                            - container
                                            - endpoint
                                            type: object
                                          deleted:
                                            type: boolean
                                          from:
                                            type: string
                                          fromExpression:
                                            type: string
                                          gcs:
                                            properties:
                                              bucket:
                                                type: string
                                              key:
                                                type: string
                                              serviceAccountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - key
                                            type: object
                                          git:
                                            properties:
                                              branch:
                                                type: string
                                              depth:
                                                format: int64
                                                type: integer
                                              disableSubmodules:
                                                type: boolean
                                              fetch:
                                                items:
                                                  type: string
                                                type: array
                                              insecureIgnoreHostKey:
                                                type: boolean
                                              insecureSkipTLS:
                                                type: boolean
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              repo:
                                                type: string
                                              revision:
                                                type: string
                                              singleBranch:
                                                type: boolean
                                              sshPrivateKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - repo
                                            type: object
                                          globalName:
                                            type: string
                                          hdfs:
                                            properties:
                                              addresses:
                                                items:
                                                  type: string
                                                type: array
                                              dataTransferProtection:
                                                type: string
                                              force:
                                                type: boolean
                                              hdfsUser:
                                                type: string
                                              krbCCacheSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbConfigConfigMap:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbKeytabSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbRealm:
                                                type: string
                                              krbServicePrincipalName:
                                                type: string
                                              krbUsername:
                                                type: string
                                              path:
                                                type: string
                                            required:
                                            - path
                                            type: object
                                          http:
                                            properties:
                                              auth:
                                                properties:
                                                  basicAuth:
                                                    properties:
                                                      passwordSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      usernameSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  clientCert:
                                                    properties:
                                                      clientCertSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientKeySecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  oauth2:
                                                    properties:
                                                      clientIDSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientSecretSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      endpointParams:
                                                        items:
                                                          properties:
                                                            key:
                                                              type: string
                                                            value:
                                                              type: string
                                                          required:
                                                          - key
                                                          type: object
                                                        type: array
                                                      scopes:
                                                        items:
                                                          type: string
                                                        type: array
                                                      tokenURLSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                type: object
                                              headers:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              url:
                                                type: string
                                            required:
                                            - url
                                            type: object
                                          mode:
                                            format: int32
                                            maximum: 511
                                            minimum: 0
                                            type: integer
                                          name:
                                            pattern: ^[-a-zA-Z0-9_{}.]+$
                                            type: string
                                          optional:
                                            type: boolean
                                          oss:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              createBucketIfNotPresent:
                                                type: boolean
                                              endpoint:
                                                type: string
                                              key:
                                                type: string
                                              lifecycleRule:
                                                properties:
                                                  markDeletionAfterDays:
                                                    format: int32
                                                    type: integer
                                                  markInfrequentAccessAfterDays:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              securityToken:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                          path:
                                            type: string
                                          plugin:
                                            properties:
                                              configuration:
                                                type: string
                                              connectionTimeoutSeconds:
                                                format: int32
                                                type: integer
                                              key:
                                                type: string
                                              name:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          raw:
                                            properties:
                                              data:
                                                type: string
                                            required:
                                            - data
                                            type: object
                                          recurseMode:
                                            type: boolean
                                          s3:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              caSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              createBucketIfNotPresent:
                                                properties:
                                                  objectLocking:
                                                    type: boolean
                                                type: object
                                              encryptionOptions:
                                                properties:
                                                  enableEncryption:
                                                    type: boolean
                                                  kmsEncryptionContext:
                                                    type: string
                                                  kmsKeyId:
                                                    type: string
                                                  serverSideCustomerKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              endpoint:
                                                type: string
                                              insecure:
                                                type: boolean
                                              key:
                                                type: string
                                              region:
                                                type: string
                                              roleARN:
                                                type: string
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              sessionTokenSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              useSDKCreds:
                                                type: boolean
                                            type: object
                                          subPath:
                                            type: string
                                        required:
                                        - name
                                        type: object
                                      type: array
                                    parameters:
                                      items:
                                        properties:
                                          default:
                                            type: string
                                          description:
                                            type: string
                                          enum:
                                            items:
                                              type: string
                                            minItems: 1
                                            type: array
                                          globalName:
                                            type: string
                                          name:
                                            pattern: ^[-a-zA-Z0-9_]+$
                                            type: string
                                          value:
                                            type: string
                                          valueFrom:
                                            properties:
                                              configMapKeyRef:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              default:
                                                type: string
                                              event:
                                                type: string
                                              expression:
                                                type: string
                                              jqFilter:
                                                type: string
                                              jsonPath:
                                                type: string
                                              parameter:
                                                type: string
                                              path:
                                                type: string
                                              supplied:
                                                type: object
                                            type: object
                                        required:
                                        - name
                                        type: object
                                      type: array
                                  type: object
                                continueOn:
                                  properties:
                                    error:
                                      type: boolean
                                    failed:
                                      type: boolean
                                  type: object
                                hooks:
                                  additionalProperties:
                                    properties:
                                      arguments:
                                        properties:
                                          artifacts:
                                            items:
                                              properties:
                                                archive:
                                                  properties:
                                                    none:
                                                      type: object
                                                    tar:
                                                      properties:
                                                        compressionLevel:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    zip:
                                                      type: object
                                                  type: object
                                                archiveLogs:
                                                  type: boolean
                                                artifactGC:
                                                  properties:
                                                    podMetadata:
                                                      properties:
                                                        annotations:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                        labels:
                                                          additionalProperties:
                                                            type: string
                                                          type: object
                                                      type: object
                                                    serviceAccountName:
                                                      type: string
                                                    strategy:
                                                      enum:
                                                      - ''
                                                      - OnWorkflowCompletion
                                                      - OnWorkflowDeletion
                                                      - Never
                                                      type: string
                                                  type: object
                                                artifactory:
                                                  properties:
                                                    passwordSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    url:
                                                      type: string
                                                    usernameSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - url
                                                  type: object
                                                azure:
                                                  properties:
                                                    accountKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    blob:
                                                      type: string
                                                    container:
                                                      type: string
                                                    endpoint:
                                                      type: string
                                                    useSDKCreds:
                                                      type: boolean
                                                  required:
                                                  - blob
                                                  - container
                                                  - endpoint
                                                  type: object
                                                deleted:
                                                  type: boolean
                                                from:
                                                  type: string
                                                fromExpression:
                                                  type: string
                                                gcs:
                                                  properties:
                                                    bucket:
                                                      type: string
                                                    key:
                                                      type: string
                                                    serviceAccountKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - key
                                                  type: object
                                                git:
                                                  properties:
                                                    branch:
                                                      type: string
                                                    depth:
                                                      format: int64
                                                      type: integer
                                                    disableSubmodules:
                                                      type: boolean
                                                    fetch:
                                                      items:
                                                        type: string
                                                      type: array
                                                    insecureIgnoreHostKey:
                                                      type: boolean
                                                    insecureSkipTLS:
                                                      type: boolean
                                                    passwordSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    repo:
                                                      type: string
                                                    revision:
                                                      type: string
                                                    singleBranch:
                                                      type: boolean
                                                    sshPrivateKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    usernameSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  required:
                                                  - repo
                                                  type: object
                                                globalName:
                                                  type: string
                                                hdfs:
                                                  properties:
                                                    addresses:
                                                      items:
                                                        type: string
                                                      type: array
                                                    dataTransferProtection:
                                                      type: string
                                                    force:
                                                      type: boolean
                                                    hdfsUser:
                                                      type: string
                                                    krbCCacheSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbConfigConfigMap:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbKeytabSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    krbRealm:
                                                      type: string
                                                    krbServicePrincipalName:
                                                      type: string
                                                    krbUsername:
                                                      type: string
                                                    path:
                                                      type: string
                                                  required:
                                                  - path
                                                  type: object
                                                http:
                                                  properties:
                                                    auth:
                                                      properties:
                                                        basicAuth:
                                                          properties:
                                                            passwordSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            usernameSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                        clientCert:
                                                          properties:
                                                            clientCertSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            clientKeySecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                        oauth2:
                                                          properties:
                                                            clientIDSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            clientSecretSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                            endpointParams:
                                                              items:
                                                                properties:
                                                                  key:
                                                                    type: string
                                                                  value:
                                                                    type: string
                                                                required:
                                                                - key
                                                                type: object
                                                              type: array
                                                            scopes:
                                                              items:
                                                                type: string
                                                              type: array
                                                            tokenURLSecret:
                                                              properties:
                                                                key:
                                                                  type: string
                                                                name:
                                                                  default: ''
                                                                  type: string
                                                                optional:
                                                                  type: boolean
                                                              required:
                                                              - key
                                                              type: object
                                                              x-kubernetes-map-type: atomic
                                                          type: object
                                                      type: object
                                                    headers:
                                                      items:
                                                        properties:
                                                          name:
                                                            type: string
                                                          value:
                                                            type: string
                                                        required:
                                                        - name
                                                        - value
                                                        type: object
                                                      type: array
                                                    url:
                                                      type: string
                                                  required:
                                                  - url
                                                  type: object
                                                mode:
                                                  format: int32
                                                  maximum: 511
                                                  minimum: 0
                                                  type: integer
                                                name:
                                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                                  type: string
                                                optional:
                                                  type: boolean
                                                oss:
                                                  properties:
                                                    accessKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    bucket:
                                                      type: string
                                                    createBucketIfNotPresent:
                                                      type: boolean
                                                    endpoint:
                                                      type: string
                                                    key:
                                                      type: string
                                                    lifecycleRule:
                                                      properties:
                                                        markDeletionAfterDays:
                                                          format: int32
                                                          type: integer
                                                        markInfrequentAccessAfterDays:
                                                          format: int32
                                                          type: integer
                                                      type: object
                                                    secretKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    securityToken:
                                                      type: string
                                                    useSDKCreds:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                path:
                                                  type: string
                                                plugin:
                                                  properties:
                                                    configuration:
                                                      type: string
                                                    connectionTimeoutSeconds:
                                                      format: int32
                                                      type: integer
                                                    key:
                                                      type: string
                                                    name:
                                                      type: string
                                                  required:
                                                  - key
                                                  type: object
                                                raw:
                                                  properties:
                                                    data:
                                                      type: string
                                                  required:
                                                  - data
                                                  type: object
                                                recurseMode:
                                                  type: boolean
                                                s3:
                                                  properties:
                                                    accessKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    bucket:
                                                      type: string
                                                    caSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    createBucketIfNotPresent:
                                                      properties:
                                                        objectLocking:
                                                          type: boolean
                                                      type: object
                                                    encryptionOptions:
                                                      properties:
                                                        enableEncryption:
                                                          type: boolean
                                                        kmsEncryptionContext:
                                                          type: string
                                                        kmsKeyId:
                                                          type: string
                                                        serverSideCustomerKeySecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    endpoint:
                                                      type: string
                                                    insecure:
                                                      type: boolean
                                                    key:
                                                      type: string
                                                    region:
                                                      type: string
                                                    roleARN:
                                                      type: string
                                                    secretKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    sessionTokenSecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    useSDKCreds:
                                                      type: boolean
                                                  type: object
                                                subPath:
                                                  type: string
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          parameters:
                                            items:
                                              properties:
                                                default:
                                                  type: string
                                                description:
                                                  type: string
                                                enum:
                                                  items:
                                                    type: string
                                                  minItems: 1
                                                  type: array
                                                globalName:
                                                  type: string
                                                name:
                                                  pattern: ^[-a-zA-Z0-9_]+$
                                                  type: string
                                                value:
                                                  type: string
                                                valueFrom:
                                                  properties:
                                                    configMapKeyRef:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    default:
                                                      type: string
                                                    event:
                                                      type: string
                                                    expression:
                                                      type: string
                                                    jqFilter:
                                                      type: string
                                                    jsonPath:
                                                      type: string
                                                    parameter:
                                                      type: string
                                                    path:
                                                      type: string
                                                    supplied:
                                                      type: object
                                                  type: object
                                              required:
                                              - name
                                              type: object
                                            type: array
                                        type: object
                                      expression:
                                        type: string
                                      template:
                                        type: string
                                      templateRef:
                                        properties:
                                          clusterScope:
                                            type: boolean
                                          name:
                                            type: string
                                          template:
                                            type: string
                                        type: object
                                    type: object
                                  type: object
                                inline:
                                  x-kubernetes-preserve-unknown-fields: true
                                name:
                                  maxLength: 128
                                  pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                  type: string
                                onExit:
                                  type: string
                                template:
                                  type: string
                                templateRef:
                                  properties:
                                    clusterScope:
                                      type: boolean
                                    name:
                                      type: string
                                    template:
                                      type: string
                                  type: object
                                when:
                                  type: string
                                withItems:
                                  x-kubernetes-preserve-unknown-fields: true
                                withParam:
                                  type: string
                                withSequence:
                                  properties:
                                    count:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    end:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    format:
                                      type: string
                                    start:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  type: object
                              type: object
                            type: array
                        required:
                        - steps
                        type: object
                      minItems: 1
                      type: array
                    suspend:
                      properties:
                        duration:
                          type: string
                      type: object
                    synchronization:
                      properties:
                        mutexes:
                          items:
                            properties:
                              database:
                                type: boolean
                              name:
                                type: string
                              namespace:
                                type: string
                            type: object
                          type: array
                        semaphores:
                          items:
                            properties:
                              configMapKeyRef:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              database:
                                properties:
                                  key:
                                    type: string
                                required:
                                - key
                                type: object
                              namespace:
                                type: string
                            type: object
                          type: array
                      type: object
                    timeout:
                      type: string
                    tolerations:
                      items:
                        properties:
                          effect:
                            type: string
                          key:
                            type: string
                          operator:
                            type: string
                          tolerationSeconds:
                            format: int64
                            type: integer
                          value:
                            type: string
                        type: object
                      type: array
                    volumes:
                      items:
                        properties:
                          awsElasticBlockStore:
                            properties:
                              fsType:
                                type: string
                              partition:
                                format: int32
                                type: integer
                              readOnly:
                                type: boolean
                              volumeID:
                                type: string
                            required:
                            - volumeID
                            type: object
                          azureDisk:
                            properties:
                              cachingMode:
                                type: string
                              diskName:
                                type: string
                              diskURI:
                                type: string
                              fsType:
                                default: ext4
                                type: string
                              kind:
                                type: string
                              readOnly:
                                default: false
                                type: boolean
                            required:
                            - diskName
                            - diskURI
                            type: object
                          azureFile:
                            properties:
                              readOnly:
                                type: boolean
                              secretName:
                                type: string
                              shareName:
                                type: string
                            required:
                            - secretName
                            - shareName
                            type: object
                          cephfs:
                            properties:
                              monitors:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              readOnly:
                                type: boolean
                              secretFile:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              user:
                                type: string
                            required:
                            - monitors
                            type: object
                          cinder:
                            properties:
                              fsType:
                                type: string
                              readOnly:
                                type: boolean
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              volumeID:
                                type: string
                            required:
                            - volumeID
                            type: object
                          configMap:
                            properties:
                              defaultMode:
                                format: int32
                                type: integer
                              items:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    mode:
                                      format: int32
                                      type: integer
                                    path:
                                      type: string
                                  required:
                                  - key
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            type: object
                            x-kubernetes-map-type: atomic
                          csi:
                            properties:
                              driver:
                                type: string
                              fsType:
                                type: string
                              nodePublishSecretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              readOnly:
                                type: boolean
                              volumeAttributes:
                                additionalProperties:
                                  type: string
                                type: object
                            required:
                            - driver
                            type: object
                          downwardAPI:
                            properties:
                              defaultMode:
                                format: int32
                                type: integer
                              items:
                                items:
                                  properties:
                                    fieldRef:
                                      properties:
                                        apiVersion:
                                          type: string
                                        fieldPath:
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    mode:
                                      format: int32
                                      type: integer
                                    path:
                                      type: string
                                    resourceFieldRef:
                                      properties:
                                        containerName:
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          emptyDir:
                            properties:
                              medium:
                                type: string
                              sizeLimit:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          ephemeral:
                            properties:
                              volumeClaimTemplate:
                                properties:
                                  metadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      finalizers:
                                        items:
                                          type: string
                                        type: array
                                      generateName:
                                        type: string
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      name:
                                        type: string
                                      namespace:
                                        type: string
                                    type: object
                                  spec:
                                    properties:
                                      accessModes:
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      dataSource:
                                        properties:
                                          apiGroup:
                                            type: string
                                          kind:
                                            type: string
                                          name:
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      dataSourceRef:
                                        properties:
                                          apiGroup:
                                            type: string
                                          kind:
                                            type: string
                                          name:
                                            type: string
                                          namespace:
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                      resources:
                                        properties:
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            type: object
                                        type: object
                                      selector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      storageClassName:
                                        type: string
                                      volumeAttributesClassName:
                                        type: string
                                      volumeMode:
                                        type: string
                                      volumeName:
                                        type: string
                                    type: object
                                required:
                                - spec
                                type: object
                            type: object
                          fc:
                            properties:
                              fsType:
                                type: string
                              lun:
                                format: int32
                                type: integer
                              readOnly:
                                type: boolean
                              targetWWNs:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              wwids:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          flexVolume:
                            properties:
                              driver:
                                type: string
                              fsType:
                                type: string
                              options:
                                additionalProperties:
                                  type: string
                                type: object
                              readOnly:
                                type: boolean
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - driver
                            type: object
                          flocker:
                            properties:
                              datasetName:
                                type: string
                              datasetUUID:
                                type: string
                            type: object
                          gcePersistentDisk:
                            properties:
                              fsType:
                                type: string
                              partition:
                                format: int32
                                type: integer
                              pdName:
                                type: string
                              readOnly:
                                type: boolean
                            required:
                            - pdName
                            type: object
                          gitRepo:
                            properties:
                              directory:
                                type: string
                              repository:
                                type: string
                              revision:
                                type: string
                            required:
                            - repository
                            type: object
                          glusterfs:
                            properties:
                              endpoints:
                                type: string
                              path:
                                type: string
                              readOnly:
                                type: boolean
                            required:
                            - endpoints
                            - path
                            type: object
                          hostPath:
                            properties:
                              path:
                                type: string
                              type:
                                type: string
                            required:
                            - path
                            type: object
                          image:
                            properties:
                              pullPolicy:
                                type: string
                              reference:
                                type: string
                            type: object
                          iscsi:
                            properties:
                              chapAuthDiscovery:
                                type: boolean
                              chapAuthSession:
                                type: boolean
                              fsType:
                                type: string
                              initiatorName:
                                type: string
                              iqn:
                                type: string
                              iscsiInterface:
                                default: default
                                type: string
                              lun:
                                format: int32
                                type: integer
                              portals:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              readOnly:
                                type: boolean
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              targetPortal:
                                type: string
                            required:
                            - iqn
                            - lun
                            - targetPortal
                            type: object
                          name:
                            type: string
                          nfs:
                            properties:
                              path:
                                type: string
                              readOnly:
                                type: boolean
                              server:
                                type: string
                            required:
                            - path
                            - server
                            type: object
                          persistentVolumeClaim:
                            properties:
                              claimName:
                                type: string
                              readOnly:
                                type: boolean
                            required:
                            - claimName
                            type: object
                          photonPersistentDisk:
                            properties:
                              fsType:
                                type: string
                              pdID:
                                type: string
                            required:
                            - pdID
                            type: object
                          portworxVolume:
                            properties:
                              fsType:
                                type: string
                              readOnly:
                                type: boolean
                              volumeID:
                                type: string
                            required:
                            - volumeID
                            type: object
                          projected:
                            properties:
                              defaultMode:
                                format: int32
                                type: integer
                              sources:
                                items:
                                  properties:
                                    clusterTrustBundle:
                                      properties:
                                        labelSelector:
                                          properties:
                                            matchExpressions:
                                              items:
                                                properties:
                                                  key:
                                                    type: string
                                                  operator:
                                                    type: string
                                                  values:
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        name:
                                          type: string
                                        optional:
                                          type: boolean
                                        path:
                                          type: string
                                        signerName:
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    configMap:
                                      properties:
                                        items:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              mode:
                                                format: int32
                                                type: integer
                                              path:
                                                type: string
                                            required:
                                            - key
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    downwardAPI:
                                      properties:
                                        items:
                                          items:
                                            properties:
                                              fieldRef:
                                                properties:
                                                  apiVersion:
                                                    type: string
                                                  fieldPath:
                                                    type: string
                                                required:
                                                - fieldPath
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              mode:
                                                format: int32
                                                type: integer
                                              path:
                                                type: string
                                              resourceFieldRef:
                                                properties:
                                                  containerName:
                                                    type: string
                                                  divisor:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                    x-kubernetes-int-or-string: true
                                                  resource:
                                                    type: string
                                                required:
                                                - resource
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    secret:
                                      properties:
                                        items:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              mode:
                                                format: int32
                                                type: integer
                                              path:
                                                type: string
                                            required:
                                            - key
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    serviceAccountToken:
                                      properties:
                                        audience:
                                          type: string
                                        expirationSeconds:
                                          format: int64
                                          type: integer
                                        path:
                                          type: string
                                      required:
                                      - path
                                      type: object
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          quobyte:
                            properties:
                              group:
                                type: string
                              readOnly:
                                type: boolean
                              registry:
                                type: string
                              tenant:
                                type: string
                              user:
                                type: string
                              volume:
                                type: string
                            required:
                            - registry
                            - volume
                            type: object
                          rbd:
                            properties:
                              fsType:
                                type: string
                              image:
                                type: string
                              keyring:
                                default: /etc/ceph/keyring
                                type: string
                              monitors:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              pool:
                                default: rbd
                                type: string
                              readOnly:
                                type: boolean
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              user:
                                default: admin
                                type: string
                            required:
                            - image
                            - monitors
                            type: object
                          scaleIO:
                            properties:
                              fsType:
                                default: xfs
                                type: string
                              gateway:
                                type: string
                              protectionDomain:
                                type: string
                              readOnly:
                                type: boolean
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              sslEnabled:
                                type: boolean
                              storageMode:
                                default: ThinProvisioned
                                type: string
                              storagePool:
                                type: string
                              system:
                                type: string
                              volumeName:
                                type: string
                            required:
                            - gateway
                            - secretRef
                            - system
                            type: object
                          secret:
                            properties:
                              defaultMode:
                                format: int32
                                type: integer
                              items:
                                items:
                                  properties:
                                    key:
                                      type: string
                                    mode:
                                      format: int32
                                      type: integer
                                    path:
                                      type: string
                                  required:
                                  - key
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              optional:
                                type: boolean
                              secretName:
                                type: string
                            type: object
                          storageos:
                            properties:
                              fsType:
                                type: string
                              readOnly:
                                type: boolean
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              volumeName:
                                type: string
                              volumeNamespace:
                                type: string
                            type: object
                          vsphereVolume:
                            properties:
                              fsType:
                                type: string
                              storagePolicyID:
                                type: string
                              storagePolicyName:
                                type: string
                              volumePath:
                                type: string
                            required:
                            - volumePath
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                  type: object
                type: object
            type: object
          status:
            properties:
              nodes:
                additionalProperties:
                  properties:
                    message:
                      type: string
                    outputs:
                      description: Outputs hold parameters, artifacts, and results from a step
                      properties:
                        artifacts:
                          description: Artifacts holds the list of output artifacts produced by a step
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        exitCode:
                          description: ExitCode holds the exit code of a script template
                          type: string
                        parameters:
                          description: Parameters holds the list of output parameters produced by a step
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        result:
                          description: Result holds the result (stdout) of a script or container template, or the response body of an HTTP template
                          type: string
                      type: object
                    phase:
                      description: NodePhase is a label for the condition of a node at the current time.
                      type: string
                    progress:
                      description: Progress in N/M format. N is number of task complete. M is number of tasks.
                      type: string
                  type: object
                type: object
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    helm.sh/resource-policy: keep
  name: workflowtemplates.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: WorkflowTemplate
    listKind: WorkflowTemplateList
    plural: workflowtemplates
    shortNames:
    - wftmpl
    singular: workflowtemplate
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: WorkflowTemplate is the definition of a workflow template resource
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation of an object.

              Servers should convert recognized schemas to the latest internal value, and

              may reject unrecognized values.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this object represents.

              Servers may infer this from the endpoint the client submits requests to.

              Cannot be updated.

              In CamelCase.

              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: WorkflowSpec is the specification of a Workflow.
            properties:
              activeDeadlineSeconds:
                description: 'Optional duration in seconds relative to the workflow start time which the workflow is

                  allowed to run before the controller terminates the workflow. A value of zero is used to

                  terminate a Running workflow'
                format: int64
                type: integer
              affinity:
                description: 'Affinity sets the scheduling constraints for all pods in the workflow.

                  Can be overridden by an affinity specified in the template'
                properties:
                  nodeAffinity:
                    description: Describes node affinity scheduling rules for the pod.
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node matches the corresponding matchExpressions; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: 'An empty preferred scheduling term matches all objects with implicit weight 0

                            (i.e. it''s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).'
                          properties:
                            preference:
                              description: A node selector term, associated with the corresponding weight.
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements by node's labels.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements by node's fields.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            weight:
                              description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                              format: int32
                              type: integer
                          required:
                          - preference
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to an update), the system

                          may or may not try to eventually evict the pod from its node.'
                        properties:
                          nodeSelectorTerms:
                            description: Required. A list of node selector terms. The terms are ORed.
                            items:
                              description: 'A null or empty node selector term matches no objects. The requirements of

                                them are ANDed.

                                The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.'
                              properties:
                                matchExpressions:
                                  description: A list of node selector requirements by node's labels.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchFields:
                                  description: A list of node selector requirements by node's fields.
                                  items:
                                    description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                      that relates the key and values.'
                                    properties:
                                      key:
                                        description: The label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'Represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                        type: string
                                      values:
                                        description: 'An array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. If the operator is Gt or Lt, the values

                                          array must have a single element, which will be interpreted as an integer.

                                          This array is replaced during a strategic merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                              x-kubernetes-map-type: atomic
                            type: array
                            x-kubernetes-list-type: atomic
                        required:
                        - nodeSelectorTerms
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                  podAffinity:
                    description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: 'A label query over a set of resources, in this case pods.

                                    If it''s null, this PodAffinityTerm matches with no Pods.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                    Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                    Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  description: 'A label query over the set of namespaces that the term applies to.

                                    The term is applied to the union of the namespaces selected by this field

                                    and the ones listed in the namespaces field.

                                    null selector and null or empty namespaces list means "this pod''s namespace".

                                    An empty selector ({}) matches all namespaces.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: 'namespaces specifies a static list of namespace names that the term applies to.

                                    The term is applied to the union of the namespaces listed in this field

                                    and the ones selected by namespaceSelector.

                                    null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                    the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                    whose value of the label with key topologyKey matches that of any node on which any of the

                                    selected pods is running.

                                    Empty topologyKey is not allowed.'
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: 'weight associated with matching the corresponding podAffinityTerm,

                                in the range 1-100.'
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to a pod label update), the

                          system may or may not try to eventually evict the pod from its node.

                          When there are multiple elements, the lists of nodes corresponding to each

                          podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                        items:
                          description: 'Defines a set of pods (namely those matching the labelSelector

                            relative to the given namespace(s)) that this pod should be

                            co-located (affinity) or not co-located (anti-affinity) with,

                            where co-located is defined as running on a node whose value of

                            the label with key <topologyKey> matches that of any node on which

                            a pod of the set of pods is running'
                          properties:
                            labelSelector:
                              description: 'A label query over a set of resources, in this case pods.

                                If it''s null, this PodAffinityTerm matches with no Pods.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            matchLabelKeys:
                              description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            mismatchLabelKeys:
                              description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            namespaceSelector:
                              description: 'A label query over the set of namespaces that the term applies to.

                                The term is applied to the union of the namespaces selected by this field

                                and the ones listed in the namespaces field.

                                null selector and null or empty namespaces list means "this pod''s namespace".

                                An empty selector ({}) matches all namespaces.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            namespaces:
                              description: 'namespaces specifies a static list of namespace names that the term applies to.

                                The term is applied to the union of the namespaces listed in this field

                                and the ones selected by namespaceSelector.

                                null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            topologyKey:
                              description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                whose value of the label with key topologyKey matches that of any node on which any of the

                                selected pods is running.

                                Empty topologyKey is not allowed.'
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                  podAntiAffinity:
                    description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                    properties:
                      preferredDuringSchedulingIgnoredDuringExecution:
                        description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                          the anti-affinity expressions specified by this field, but it may choose

                          a node that violates one or more of the expressions. The node that is

                          most preferred is the one with the greatest sum of weights, i.e.

                          for each node that meets all of the scheduling requirements (resource

                          request, requiredDuringScheduling anti-affinity expressions, etc.),

                          compute a sum by iterating through the elements of this field and adding

                          "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                          node(s) with the highest sum are the most preferred.'
                        items:
                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                          properties:
                            podAffinityTerm:
                              description: Required. A pod affinity term, associated with the corresponding weight.
                              properties:
                                labelSelector:
                                  description: 'A label query over a set of resources, in this case pods.

                                    If it''s null, this PodAffinityTerm matches with no Pods.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                    Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                    be taken into consideration. The keys are used to lookup values from the

                                    incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                    to select the group of existing pods which pods will be taken into consideration

                                    for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                    pod labels will be ignored. The default value is empty.

                                    The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                    Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  description: 'A label query over the set of namespaces that the term applies to.

                                    The term is applied to the union of the namespaces selected by this field

                                    and the ones listed in the namespaces field.

                                    null selector and null or empty namespaces list means "this pod''s namespace".

                                    An empty selector ({}) matches all namespaces.'
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: 'namespaces specifies a static list of namespace names that the term applies to.

                                    The term is applied to the union of the namespaces listed in this field

                                    and the ones selected by namespaceSelector.

                                    null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                    the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                    whose value of the label with key topologyKey matches that of any node on which any of the

                                    selected pods is running.

                                    Empty topologyKey is not allowed.'
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            weight:
                              description: 'weight associated with matching the corresponding podAffinityTerm,

                                in the range 1-100.'
                              format: int32
                              type: integer
                          required:
                          - podAffinityTerm
                          - weight
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      requiredDuringSchedulingIgnoredDuringExecution:
                        description: 'If the anti-affinity requirements specified by this field are not met at

                          scheduling time, the pod will not be scheduled onto the node.

                          If the anti-affinity requirements specified by this field cease to be met

                          at some point during pod execution (e.g. due to a pod label update), the

                          system may or may not try to eventually evict the pod from its node.

                          When there are multiple elements, the lists of nodes corresponding to each

                          podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                        items:
                          description: 'Defines a set of pods (namely those matching the labelSelector

                            relative to the given namespace(s)) that this pod should be

                            co-located (affinity) or not co-located (anti-affinity) with,

                            where co-located is defined as running on a node whose value of

                            the label with key <topologyKey> matches that of any node on which

                            a pod of the set of pods is running'
                          properties:
                            labelSelector:
                              description: 'A label query over a set of resources, in this case pods.

                                If it''s null, this PodAffinityTerm matches with no Pods.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            matchLabelKeys:
                              description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            mismatchLabelKeys:
                              description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                be taken into consideration. The keys are used to lookup values from the

                                incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                to select the group of existing pods which pods will be taken into consideration

                                for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                pod labels will be ignored. The default value is empty.

                                The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            namespaceSelector:
                              description: 'A label query over the set of namespaces that the term applies to.

                                The term is applied to the union of the namespaces selected by this field

                                and the ones listed in the namespaces field.

                                null selector and null or empty namespaces list means "this pod''s namespace".

                                An empty selector ({}) matches all namespaces.'
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                  items:
                                    description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                      relates the key and values.'
                                    properties:
                                      key:
                                        description: key is the label key that the selector applies to.
                                        type: string
                                      operator:
                                        description: 'operator represents a key''s relationship to a set of values.

                                          Valid operators are In, NotIn, Exists and DoesNotExist.'
                                        type: string
                                      values:
                                        description: 'values is an array of string values. If the operator is In or NotIn,

                                          the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                          the values array must be empty. This array is replaced during a strategic

                                          merge patch.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                    map is equivalent to an element of matchExpressions, whose key field is "key", the

                                    operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                  type: object
                              type: object
                              x-kubernetes-map-type: atomic
                            namespaces:
                              description: 'namespaces specifies a static list of namespace names that the term applies to.

                                The term is applied to the union of the namespaces listed in this field

                                and the ones selected by namespaceSelector.

                                null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            topologyKey:
                              description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                whose value of the label with key topologyKey matches that of any node on which any of the

                                selected pods is running.

                                Empty topologyKey is not allowed.'
                              type: string
                          required:
                          - topologyKey
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                    type: object
                type: object
              archiveLogs:
                description: ArchiveLogs indicates if the container logs should be archived
                type: boolean
              arguments:
                description: 'Arguments contain the parameters and artifacts sent to the workflow entrypoint

                  Parameters are referencable globally using the ''workflow'' variable prefix.

                  e.g. {{workflow.parameters.myparam}}'
                properties:
                  artifacts:
                    description: Artifacts is the list of artifacts to pass to the template or workflow
                    items:
                      description: Artifact indicates an artifact to place at a specified path
                      properties:
                        archive:
                          description: Archive controls how the artifact will be saved to the artifact repository.
                          properties:
                            none:
                              description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                save/load the directory appropriately.'
                              type: object
                            tar:
                              description: TarStrategy will tar and gzip the file or directory when saving
                              properties:
                                compressionLevel:
                                  description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                    Defaults to gzip.DefaultCompression.'
                                  format: int32
                                  type: integer
                              type: object
                            zip:
                              description: ZipStrategy will unzip zipped input artifacts
                              type: object
                          type: object
                        archiveLogs:
                          description: ArchiveLogs indicates if the container logs should be archived
                          type: boolean
                        artifactGC:
                          description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                          properties:
                            podMetadata:
                              description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                              type: object
                            serviceAccountName:
                              description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                              type: string
                            strategy:
                              description: Strategy is the strategy to use.
                              enum:
                              - ''
                              - OnWorkflowCompletion
                              - OnWorkflowDeletion
                              - Never
                              type: string
                          type: object
                        artifactory:
                          description: Artifactory contains artifactory artifact location details
                          properties:
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              description: URL of the artifact
                              type: string
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          description: Azure contains Azure Storage artifact location details
                          properties:
                            accountKeySecret:
                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                              type: string
                            container:
                              description: Container is the container where resources will be stored
                              type: string
                            endpoint:
                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        deleted:
                          description: Has this been deleted?
                          type: boolean
                        from:
                          description: From allows an artifact to reference an artifact from a previous step
                          type: string
                        fromExpression:
                          description: FromExpression, if defined, is evaluated to specify the value for the artifact
                          type: string
                        gcs:
                          description: GCS contains GCS artifact location details
                          properties:
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            serviceAccountKeySecret:
                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          description: Git contains git artifact location details
                          properties:
                            branch:
                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                              type: string
                            depth:
                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                number of commits from the branch tip'
                              format: int64
                              type: integer
                            disableSubmodules:
                              description: DisableSubmodules disables submodules during git clone
                              type: boolean
                            fetch:
                              description: Fetch specifies a number of refs that should be fetched before checkout
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                              type: boolean
                            insecureSkipTLS:
                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                              type: boolean
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              description: Repo is the git repository
                              type: string
                            revision:
                              description: Revision is the git commit, tag, branch to checkout
                              type: string
                            singleBranch:
                              description: SingleBranch enables single branch clone, using the `branch` parameter
                              type: boolean
                            sshPrivateKeySecret:
                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        globalName:
                          description: 'GlobalName exports an output artifact to the global scope, making it available as

                            ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                          type: string
                        hdfs:
                          description: HDFS contains HDFS artifact location details
                          properties:
                            addresses:
                              description: Addresses is accessible addresses of HDFS name nodes
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                              type: string
                            force:
                              description: Force copies a file forcibly even if it exists
                              type: boolean
                            hdfsUser:
                              description: 'HDFSUser is the user to access HDFS file system.

                                It is ignored if either ccache or keytab is used.'
                              type: string
                            krbCCacheSecret:
                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                It must be set if either ccache or keytab is used.'
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            krbServicePrincipalName:
                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                It must be set if either ccache or keytab is used.'
                              type: string
                            krbUsername:
                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            path:
                              description: Path is a file path in HDFS
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          description: HTTP contains HTTP artifact location details
                          properties:
                            auth:
                              description: Auth contains information for client authentication
                              properties:
                                basicAuth:
                                  description: BasicAuth describes the secret selectors required for basic authentication
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                  properties:
                                    clientCertSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                  properties:
                                    clientIDSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                        properties:
                                          key:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                              items:
                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                properties:
                                  name:
                                    description: Name is the header name
                                    type: string
                                  value:
                                    description: Value is the literal value to use for the header
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              description: URL of the artifact
                              type: string
                          required:
                          - url
                          type: object
                        mode:
                          description: 'mode bits to use on this file, must be a value between 0 and 0777.

                            Set when loading input artifacts. It is recommended to set the mode value

                            to ensure the artifact has the expected permissions in your container.'
                          format: int32
                          maximum: 511
                          minimum: 0
                          type: integer
                        name:
                          description: name of the artifact. must be unique within a template's inputs/outputs.
                          pattern: ^[-a-zA-Z0-9_{}.]+$
                          type: string
                        optional:
                          description: Make Artifacts optional, if Artifacts doesn't generate or exist
                          type: boolean
                        oss:
                          description: OSS contains OSS artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                              type: boolean
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            lifecycleRule:
                              description: LifecycleRule specifies how to manage bucket's lifecycle
                              properties:
                                markDeletionAfterDays:
                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - key
                          type: object
                        path:
                          description: Path is the container path to the artifact
                          type: string
                        plugin:
                          description: Plugin contains plugin artifact location details
                          properties:
                            configuration:
                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                              type: string
                            connectionTimeoutSeconds:
                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                              format: int32
                              type: integer
                            key:
                              description: Key is the path in the artifact repository where the artifact resides
                              type: string
                            name:
                              description: Name is the name of the artifact driver plugin
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          description: Raw contains raw artifact location details
                          properties:
                            data:
                              description: Data is the string contents of the artifact
                              type: string
                          required:
                          - data
                          type: object
                        recurseMode:
                          description: If mode is set, apply the permission recursively into the artifact if it is a folder
                          type: boolean
                        s3:
                          description: S3 contains S3 artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            caSecret:
                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                              properties:
                                objectLocking:
                                  description: ObjectLocking Enable object locking
                                  type: boolean
                              type: object
                            encryptionOptions:
                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                              properties:
                                enableEncryption:
                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                  type: boolean
                                kmsEncryptionContext:
                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                  type: string
                                kmsKeyId:
                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                  type: string
                                serverSideCustomerKeySecret:
                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            insecure:
                              description: Insecure will connect to the service with TLS
                              type: boolean
                            key:
                              description: Key is the key in the bucket where the artifact resides
                              type: string
                            region:
                              description: Region contains the optional bucket region
                              type: string
                            roleARN:
                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                              type: string
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          type: object
                        subPath:
                          description: SubPath allows an artifact to be sourced from a subpath within the specified source
                          type: string
                      required:
                      - name
                      type: object
                      x-kubernetes-validations:
                      - message: at most one artifact location can be specified
                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                    type: array
                  parameters:
                    description: Parameters is the list of parameters to pass to the template or workflow
                    items:
                      description: Parameter indicate a passed string parameter to a service template with an optional default value
                      properties:
                        default:
                          description: Default is the default value to use for an input parameter if a value was not supplied
                          type: string
                        description:
                          description: Description is the parameter description
                          type: string
                        enum:
                          description: Enum holds a list of string values to choose from, for the actual value of the parameter
                          items:
                            description: '* It''s JSON type is just string.

                              * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                              * It will marshall back to string - marshalling is not symmetric.'
                            type: string
                          minItems: 1
                          type: array
                        globalName:
                          description: 'GlobalName exports an output parameter to the global scope, making it available as

                            ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                          type: string
                        name:
                          description: Name is the parameter name
                          pattern: ^[-a-zA-Z0-9_]+$
                          type: string
                        value:
                          description: 'Value is the literal value to use for the parameter.

                            If specified in the context of an input parameter, any passed values take precedence over the specified value'
                          type: string
                        valueFrom:
                          description: ValueFrom is the source for the output parameter's value
                          properties:
                            configMapKeyRef:
                              description: ConfigMapKeyRef is configmap selector for input parameter configuration
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            default:
                              description: Default specifies a value to be used if retrieving the value from the specified source fails
                              type: string
                            event:
                              description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                              type: string
                            expression:
                              description: Expression, if defined, is evaluated to specify the value for the parameter
                              type: string
                            jqFilter:
                              description: JQFilter expression against the resource object in resource templates
                              type: string
                            jsonPath:
                              description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                              type: string
                            parameter:
                              description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                              type: string
                            path:
                              description: Path in the container to retrieve an output parameter value from in container templates
                              type: string
                            supplied:
                              description: Supplied value to be filled in directly, either through the CLI, API, etc.
                              type: object
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
              artifactGC:
                description: 'ArtifactGC describes the strategy to use when deleting artifacts from completed or deleted workflows (applies to all output Artifacts

                  unless Artifact.ArtifactGC is specified, which overrides this)'
                properties:
                  forceFinalizerRemoval:
                    description: 'ForceFinalizerRemoval: if set to true, the finalizer will be removed in the case that Artifact GC fails'
                    type: boolean
                  podMetadata:
                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  podSpecPatch:
                    description: PodSpecPatch holds strategic merge patch to apply against the artgc pod spec.
                    type: string
                  serviceAccountName:
                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                    type: string
                  strategy:
                    description: Strategy is the strategy to use.
                    enum:
                    - ''
                    - OnWorkflowCompletion
                    - OnWorkflowDeletion
                    - Never
                    type: string
                type: object
              artifactRepositoryRef:
                description: ArtifactRepositoryRef specifies the configMap name and key containing the artifact repository config.
                properties:
                  configMap:
                    description: The name of the config map. Defaults to "artifact-repositories".
                    type: string
                  key:
                    description: The config map key. Defaults to the value of the "workflows.argoproj.io/default-artifact-repository" annotation.
                    type: string
                type: object
              automountServiceAccountToken:
                description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods.

                  ServiceAccountName of ExecutorConfig must be specified if this value is false.'
                type: boolean
              dnsConfig:
                description: 'PodDNSConfig defines the DNS parameters of a pod in addition to

                  those generated from DNSPolicy.'
                properties:
                  nameservers:
                    description: 'A list of DNS name server IP addresses.

                      This will be appended to the base nameservers generated from DNSPolicy.

                      Duplicated nameservers will be removed.'
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: atomic
                  options:
                    description: 'A list of DNS resolver options.

                      This will be merged with the base options generated from DNSPolicy.

                      Duplicated entries will be removed. Resolution options given in Options

                      will override those that appear in the base DNSPolicy.'
                    items:
                      description: PodDNSConfigOption defines DNS resolver options of a pod.
                      properties:
                        name:
                          description: 'Name is this DNS resolver option''s name.

                            Required.'
                          type: string
                        value:
                          description: Value is this DNS resolver option's value.
                          type: string
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  searches:
                    description: 'A list of DNS search domains for host-name lookup.

                      This will be appended to the base search paths generated from DNSPolicy.

                      Duplicated search paths will be removed.'
                    items:
                      type: string
                    type: array
                    x-kubernetes-list-type: atomic
                type: object
              dnsPolicy:
                description: 'Set DNS policy for workflow pods.

                  Defaults to "ClusterFirst".

                  Valid values are ''ClusterFirstWithHostNet'', ''ClusterFirst'', ''Default'' or ''None''.

                  DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.

                  To have DNS options set along with hostNetwork, you have to specify DNS policy

                  explicitly to ''ClusterFirstWithHostNet''.'
                type: string
              entrypoint:
                description: Entrypoint is a template reference to the starting point of the workflow.
                type: string
              executor:
                description: Executor holds configurations of executor containers of the workflow.
                properties:
                  serviceAccountName:
                    description: ServiceAccountName specifies the service account name of the executor container.
                    type: string
                type: object
              hooks:
                additionalProperties:
                  properties:
                    arguments:
                      description: Arguments hold arguments to the template
                      properties:
                        artifacts:
                          description: Artifacts is the list of artifacts to pass to the template or workflow
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        parameters:
                          description: Parameters is the list of parameters to pass to the template or workflow
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                      type: object
                    expression:
                      description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                        be retried and the retry strategy will be ignored'
                      type: string
                    template:
                      description: Template is the name of the template to execute by the hook
                      type: string
                    templateRef:
                      description: TemplateRef is the reference to the template resource to execute by the hook
                      properties:
                        clusterScope:
                          description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                          type: boolean
                        name:
                          description: Name is the resource name of the template.
                          type: string
                        template:
                          description: Template is the name of referred template in the resource.
                          type: string
                      type: object
                  type: object
                description: 'Hooks holds the lifecycle hook which is invoked at lifecycle of

                  step, irrespective of the success, failure, or error status of the primary step'
                type: object
              hostAliases:
                items:
                  description: 'HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the

                    pod''s hosts file.'
                  properties:
                    hostnames:
                      description: Hostnames for the above IP address.
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: atomic
                    ip:
                      description: IP address of the host file entry.
                      type: string
                  required:
                  - ip
                  type: object
                type: array
              hostNetwork:
                description: Host networking requested for this workflow pod. Default to false.
                type: boolean
              imagePullSecrets:
                description: 'ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images

                  in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets

                  can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.

                  More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod'
                items:
                  description: 'LocalObjectReference contains enough information to let you locate the

                    referenced object inside the same namespace.'
                  properties:
                    name:
                      default: ''
                      description: 'Name of the referent.

                        This field is effectively required, but due to backwards compatibility is

                        allowed to be empty. Instances of this type with an empty value here are

                        almost certainly wrong.

                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                  type: object
                  x-kubernetes-map-type: atomic
                type: array
              metrics:
                description: Metrics are a list of metrics emitted from this Workflow
                properties:
                  prometheus:
                    description: 'Prometheus is a list of prometheus metrics to be emitted

                      MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                    items:
                      description: Prometheus is a prometheus metric to be emitted
                      properties:
                        counter:
                          description: Counter is a counter metric
                          properties:
                            value:
                              description: Value is the value of the metric
                              minLength: 1
                              type: string
                          required:
                          - value
                          type: object
                        gauge:
                          description: Gauge is a gauge metric
                          properties:
                            operation:
                              description: Operation defines the operation to apply with value and the metrics' current value
                              enum:
                              - Set
                              - Add
                              - Sub
                              type: string
                            realtime:
                              description: Realtime emits this metric in real time if applicable
                              type: boolean
                            value:
                              description: 'Value is the value to be used in the operation with the metric''s current value. If no operation is set,

                                value is the value of the metric

                                MaxLength is an artificial limit to limit CEL validation costs - see note at top of file'
                              maxLength: 256
                              minLength: 1
                              type: string
                          required:
                          - realtime
                          - value
                          type: object
                          x-kubernetes-validations:
                          - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                            rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                        help:
                          description: Help is a string that describes the metric
                          minLength: 1
                          type: string
                        histogram:
                          description: Histogram is a histogram metric
                          properties:
                            buckets:
                              description: Buckets is a list of bucket divisors for the histogram
                              items:
                                type: number
                              type: array
                            value:
                              description: Value is the value of the metric
                              minLength: 1
                              type: string
                          required:
                          - buckets
                          - value
                          type: object
                        labels:
                          description: Labels is a list of metric labels
                          items:
                            description: MetricLabel is a single label for a prometheus metric
                            properties:
                              key:
                                pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                type: string
                              value:
                                type: string
                            required:
                            - key
                            - value
                            type: object
                          type: array
                        name:
                          description: Name is the name of the metric
                          pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                          type: string
                        when:
                          description: When is a conditional statement that decides when to emit the metric
                          type: string
                      required:
                      - help
                      - name
                      type: object
                    maxItems: 100
                    type: array
                required:
                - prometheus
                type: object
              nodeSelector:
                additionalProperties:
                  type: string
                description: 'NodeSelector is a selector which will result in all pods of the workflow

                  to be scheduled on the selected node(s). This is able to be overridden by

                  a nodeSelector specified in the template.'
                type: object
              onExit:
                description: 'OnExit is a template reference which is invoked at the end of the

                  workflow, irrespective of the success, failure, or error of the

                  primary workflow.'
                type: string
              parallelism:
                description: Parallelism limits the max total parallel pods that can execute at the same time in a workflow
                format: int64
                minimum: 1
                type: integer
              podDisruptionBudget:
                description: 'PodDisruptionBudget holds the number of concurrent disruptions that you allow for Workflow''s Pods.

                  Controller will automatically add the selector with workflow name, if selector is empty.

                  Optional: Defaults to empty.'
                properties:
                  maxUnavailable:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'An eviction is allowed if at most "maxUnavailable" pods selected by

                      "selector" are unavailable after the eviction, i.e. even in absence of

                      the evicted pod. For example, one can prevent all voluntary evictions

                      by specifying 0. This is a mutually exclusive setting with "minAvailable".'
                    x-kubernetes-int-or-string: true
                  minAvailable:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'An eviction is allowed if at least "minAvailable" pods selected by

                      "selector" will still be available after the eviction, i.e. even in the

                      absence of the evicted pod.  So for example you can prevent all voluntary

                      evictions by specifying "100%".'
                    x-kubernetes-int-or-string: true
                  selector:
                    description: 'Label query over pods whose evictions are managed by the disruption

                      budget.

                      A null selector will match no pods, while an empty ({}) selector will select

                      all pods within the namespace.'
                    properties:
                      matchExpressions:
                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                        items:
                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                            relates the key and values.'
                          properties:
                            key:
                              description: key is the label key that the selector applies to.
                              type: string
                            operator:
                              description: 'operator represents a key''s relationship to a set of values.

                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                              type: string
                            values:
                              description: 'values is an array of string values. If the operator is In or NotIn,

                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                the values array must be empty. This array is replaced during a strategic

                                merge patch.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                        type: object
                    type: object
                    x-kubernetes-map-type: atomic
                  unhealthyPodEvictionPolicy:
                    description: 'UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods

                      should be considered for eviction. Current implementation considers healthy pods,

                      as pods that have status.conditions item with type="Ready",status="True".


                      Valid policies are IfHealthyBudget and AlwaysAllow.

                      If no policy is specified, the default behavior will be used,

                      which corresponds to the IfHealthyBudget policy.


                      IfHealthyBudget policy means that running pods (status.phase="Running"),

                      but not yet healthy can be evicted only if the guarded application is not

                      disrupted (status.currentHealthy is at least equal to status.desiredHealthy).

                      Healthy pods will be subject to the PDB for eviction.


                      AlwaysAllow policy means that all running pods (status.phase="Running"),

                      but not yet healthy are considered disrupted and can be evicted regardless

                      of whether the criteria in a PDB is met. This means perspective running

                      pods of a disrupted application might not get a chance to become healthy.

                      Healthy pods will be subject to the PDB for eviction.


                      Additional policies may be added in the future.

                      Clients making eviction decisions should disallow eviction of unhealthy pods

                      if they encounter an unrecognized policy in this field.'
                    type: string
                type: object
              podGC:
                description: PodGC describes the strategy to use when deleting completed pods
                properties:
                  deleteDelayDuration:
                    description: DeleteDelayDuration specifies the duration before pods in the GC queue get deleted.
                    type: string
                  labelSelector:
                    description: LabelSelector is the label selector to check if the pods match the labels before being added to the pod GC queue.
                    properties:
                      matchExpressions:
                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                        items:
                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                            relates the key and values.'
                          properties:
                            key:
                              description: key is the label key that the selector applies to.
                              type: string
                            operator:
                              description: 'operator represents a key''s relationship to a set of values.

                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                              type: string
                            values:
                              description: 'values is an array of string values. If the operator is In or NotIn,

                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                the values array must be empty. This array is replaced during a strategic

                                merge patch.'
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                        type: object
                    type: object
                    x-kubernetes-map-type: atomic
                  strategy:
                    description: Strategy is the strategy to use. One of "OnPodCompletion", "OnPodSuccess", "OnWorkflowCompletion", "OnWorkflowSuccess". If unset, does not delete Pods
                    enum:
                    - ''
                    - OnPodCompletion
                    - OnPodSuccess
                    - OnWorkflowCompletion
                    - OnWorkflowSuccess
                    type: string
                type: object
              podMetadata:
                description: PodMetadata defines additional metadata that should be applied to workflow pods
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                type: object
              podPriorityClassName:
                description: PriorityClassName to apply to workflow pods.
                type: string
              podSpecPatch:
                description: 'PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of

                  container fields which are not strings (e.g. resource limits).'
                type: string
              priority:
                description: Priority is used if controller is configured to process limited number of workflows in parallel. Workflows with higher priority are processed first.
                format: int32
                type: integer
              retryStrategy:
                description: RetryStrategy for all templates in the workflow.
                properties:
                  affinity:
                    description: Affinity prevents running workflow's step on the same host
                    properties:
                      nodeAntiAffinity:
                        description: 'RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed.

                          In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".'
                        type: object
                    type: object
                  backoff:
                    description: Backoff is a backoff strategy
                    properties:
                      cap:
                        description: 'Cap is a limit on revised values of the duration parameter. If a

                          multiplication by the factor parameter would make the duration

                          exceed the cap then the duration is set to the cap'
                        type: string
                      duration:
                        description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                        type: string
                      factor:
                        anyOf:
                        - type: integer
                        - type: string
                        description: Factor is a factor to multiply the base duration after each failed retry
                        x-kubernetes-int-or-string: true
                      maxDuration:
                        description: 'MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy.

                          It is important to note that if the workflow template includes activeDeadlineSeconds, the pod''s deadline is initially set with activeDeadlineSeconds.

                          However, when the workflow fails, the pod''s deadline is then overridden by maxDuration.

                          This ensures that the workflow does not exceed the specified maximum duration when retries are involved.'
                        type: string
                    type: object
                  expression:
                    description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                      be retried and the retry strategy will be ignored'
                    type: string
                  limit:
                    anyOf:
                    - type: integer
                    - type: string
                    description: 'Limit is the maximum number of retry attempts when retrying a container. It does not include the original

                      container; the maximum number of total attempts will be `limit + 1`.'
                    x-kubernetes-int-or-string: true
                  retryPolicy:
                    description: RetryPolicy is a policy of NodePhase statuses that will be retried
                    enum:
                    - Always
                    - OnFailure
                    - OnError
                    - OnTransientError
                    type: string
                type: object
              schedulerName:
                description: 'Set scheduler name for all pods.

                  Will be overridden if container/script template''s scheduler name is set.

                  Default scheduler will be used if neither specified.'
                type: string
              securityContext:
                description: 'SecurityContext holds pod-level security attributes and common container settings.

                  Optional: Defaults to empty.  See type description for default values of each field.'
                properties:
                  appArmorProfile:
                    description: 'appArmorProfile is the AppArmor options to use by the containers in this pod.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      localhostProfile:
                        description: 'localhostProfile indicates a profile loaded on the node that should be used.

                          The profile must be preconfigured on the node to work.

                          Must match the loaded name of the profile.

                          Must be set if and only if type is "Localhost".'
                        type: string
                      type:
                        description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                        type: string
                    required:
                    - type
                    type: object
                  fsGroup:
                    description: 'A special supplemental group that applies to all containers in a pod.

                      Some volume types allow the Kubelet to change the ownership of that volume

                      to be owned by the pod:


                      1. The owning GID will be the FSGroup

                      2. The setgid bit is set (new files created in the volume will be owned by FSGroup)

                      3. The permission bits are OR''d with rw-rw----


                      If unset, the Kubelet will not modify the ownership and permissions of any volume.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  fsGroupChangePolicy:
                    description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume

                      before being exposed inside Pod. This field will only apply to

                      volume types which support fsGroup based ownership(and permissions).

                      It will have no effect on ephemeral volume types such as: secret, configmaps

                      and emptydir.

                      Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  runAsGroup:
                    description: 'The GID to run the entrypoint of the container process.

                      Uses runtime default if unset.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence

                      for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  runAsNonRoot:
                    description: 'Indicates that the container must run as a non-root user.

                      If true, the Kubelet will validate the image at runtime to ensure that it

                      does not run as UID 0 (root) and fail to start the container if it does.

                      If unset or false, no such validation will be performed.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                    type: boolean
                  runAsUser:
                    description: 'The UID to run the entrypoint of the container process.

                      Defaults to user specified in image metadata if unspecified.

                      May also be set in SecurityContext.  If set in both SecurityContext and

                      PodSecurityContext, the value specified in SecurityContext takes precedence

                      for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    format: int64
                    type: integer
                  seLinuxChangePolicy:
                    description: 'seLinuxChangePolicy defines how the container''s SELinux label is applied to all volumes used by the Pod.

                      It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.

                      Valid values are "MountOption" and "Recursive".


                      "Recursive" means relabeling of all files on all Pod volumes by the container runtime.

                      This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.


                      "MountOption" mounts all eligible Pod volumes with `-o context` mount option.

                      This requires all Pods that share the same volume to use the same SELinux label.

                      It is not possible to share the same volume among privileged and unprivileged Pods.

                      Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes

                      whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their

                      CSIDriver instance. Other volumes are always re-labelled recursively.

                      "MountOption" value is allowed only when SELinuxMount feature gate is enabled.


                      If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.

                      If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes

                      and "Recursive" for all other volumes.


                      This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.


                      All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  seLinuxOptions:
                    description: 'The SELinux context to be applied to all containers.

                      If unspecified, the container runtime will allocate a random SELinux context for each

                      container.  May also be set in SecurityContext.  If set in

                      both SecurityContext and PodSecurityContext, the value specified in SecurityContext

                      takes precedence for that container.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      level:
                        description: Level is SELinux level label that applies to the container.
                        type: string
                      role:
                        description: Role is a SELinux role label that applies to the container.
                        type: string
                      type:
                        description: Type is a SELinux type label that applies to the container.
                        type: string
                      user:
                        description: User is a SELinux user label that applies to the container.
                        type: string
                    type: object
                  seccompProfile:
                    description: 'The seccomp options to use by the containers in this pod.

                      Note that this field cannot be set when spec.os.name is windows.'
                    properties:
                      localhostProfile:
                        description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                          The profile must be preconfigured on the node to work.

                          Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                          Must be set if type is "Localhost". Must NOT be set for any other type.'
                        type: string
                      type:
                        description: 'type indicates which kind of seccomp profile will be applied.

                          Valid options are:


                          Localhost - a profile defined in a file on the node should be used.

                          RuntimeDefault - the container runtime default profile should be used.

                          Unconfined - no profile should be applied.'
                        type: string
                    required:
                    - type
                    type: object
                  supplementalGroups:
                    description: 'A list of groups applied to the first process run in each container, in

                      addition to the container''s primary GID and fsGroup (if specified).  If

                      the SupplementalGroupsPolicy feature is enabled, the

                      supplementalGroupsPolicy field determines whether these are in addition

                      to or instead of any group memberships defined in the container image.

                      If unspecified, no additional groups are added, though group memberships

                      defined in the container image may still be used, depending on the

                      supplementalGroupsPolicy field.

                      Note that this field cannot be set when spec.os.name is windows.'
                    items:
                      format: int64
                      type: integer
                    type: array
                    x-kubernetes-list-type: atomic
                  supplementalGroupsPolicy:
                    description: 'Defines how supplemental groups of the first container processes are calculated.

                      Valid values are "Merge" and "Strict". If not specified, "Merge" is used.

                      (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled

                      and the container runtime must implement support for this feature.

                      Note that this field cannot be set when spec.os.name is windows.'
                    type: string
                  sysctls:
                    description: 'Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported

                      sysctls (by the container runtime) might fail to launch.

                      Note that this field cannot be set when spec.os.name is windows.'
                    items:
                      description: Sysctl defines a kernel parameter to be set
                      properties:
                        name:
                          description: Name of a property to set
                          type: string
                        value:
                          description: Value of a property to set
                          type: string
                      required:
                      - name
                      - value
                      type: object
                    type: array
                    x-kubernetes-list-type: atomic
                  windowsOptions:
                    description: 'The Windows specific settings applied to all containers.

                      If unspecified, the options within a container''s SecurityContext will be used.

                      If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                      Note that this field cannot be set when spec.os.name is linux.'
                    properties:
                      gmsaCredentialSpec:
                        description: 'GMSACredentialSpec is where the GMSA admission webhook

                          (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                          GMSA credential spec named by the GMSACredentialSpecName field.'
                        type: string
                      gmsaCredentialSpecName:
                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                        type: string
                      hostProcess:
                        description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                          All of a Pod''s containers must have the same effective HostProcess value

                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                          In addition, if HostProcess is true then HostNetwork must also be set to true.'
                        type: boolean
                      runAsUserName:
                        description: 'The UserName in Windows to run the entrypoint of the container process.

                          Defaults to the user specified in image metadata if unspecified.

                          May also be set in PodSecurityContext. If set in both SecurityContext and

                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                        type: string
                    type: object
                type: object
              serviceAccountName:
                description: ServiceAccountName is the name of the ServiceAccount to run all pods of the workflow as.
                type: string
              shutdown:
                description: Shutdown will shutdown the workflow according to its ShutdownStrategy
                type: string
              suspend:
                description: Suspend will suspend the workflow and prevent execution of any future steps in the workflow
                type: boolean
              synchronization:
                description: Synchronization holds synchronization lock configuration for this Workflow
                properties:
                  mutexes:
                    description: 'v3.6 and after: Mutexes holds the list of Mutex lock details'
                    items:
                      description: Mutex holds Mutex configuration
                      properties:
                        database:
                          description: Database specifies this is database controlled if this is set true
                          type: boolean
                        name:
                          description: name of the mutex
                          type: string
                        namespace:
                          description: 'Namespace is the namespace of the mutex, default: [namespace of workflow]'
                          type: string
                      type: object
                    type: array
                  semaphores:
                    description: 'v3.6 and after: Semaphores holds the list of Semaphores configuration'
                    items:
                      description: SemaphoreRef is a reference of Semaphore
                      properties:
                        configMapKeyRef:
                          description: ConfigMapKeyRef is a configmap selector for Semaphore configuration
                          properties:
                            key:
                              description: The key to select.
                              type: string
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                            optional:
                              description: Specify whether the ConfigMap or its key must be defined
                              type: boolean
                          required:
                          - key
                          type: object
                          x-kubernetes-map-type: atomic
                        database:
                          description: SyncDatabaseRef is a database reference for Semaphore configuration
                          properties:
                            key:
                              type: string
                          required:
                          - key
                          type: object
                        namespace:
                          description: 'Namespace is the namespace of the configmap, default: [namespace of workflow]'
                          type: string
                      type: object
                    type: array
                type: object
              templateDefaults:
                description: 'TemplateDefaults holds default template values that will apply to all templates in the Workflow, unless overridden on the template-level.

                  All nested field descriptions have been dropped due to Kubernetes size limitations.'
                properties:
                  activeDeadlineSeconds:
                    anyOf:
                    - type: integer
                    - type: string
                    x-kubernetes-int-or-string: true
                  affinity:
                    properties:
                      nodeAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                preference:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            properties:
                              nodeSelectorTerms:
                                items:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchFields:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                  x-kubernetes-map-type: atomic
                                type: array
                                x-kubernetes-list-type: atomic
                            required:
                            - nodeSelectorTerms
                            type: object
                            x-kubernetes-map-type: atomic
                        type: object
                      podAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                        type: object
                      podAntiAffinity:
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                podAffinityTerm:
                                  properties:
                                    labelSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    matchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    mismatchLabelKeys:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    namespaceSelector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    topologyKey:
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          requiredDuringSchedulingIgnoredDuringExecution:
                            items:
                              properties:
                                labelSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                matchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                mismatchLabelKeys:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                namespaceSelector:
                                  properties:
                                    matchExpressions:
                                      items:
                                        properties:
                                          key:
                                            type: string
                                          operator:
                                            type: string
                                          values:
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                topologyKey:
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                        type: object
                    type: object
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  archiveLocation:
                    properties:
                      archiveLogs:
                        type: boolean
                      artifactory:
                        properties:
                          passwordSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          url:
                            type: string
                          usernameSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - url
                        type: object
                      azure:
                        properties:
                          accountKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          blob:
                            type: string
                          container:
                            type: string
                          endpoint:
                            type: string
                          useSDKCreds:
                            type: boolean
                        required:
                        - blob
                        - container
                        - endpoint
                        type: object
                      gcs:
                        properties:
                          bucket:
                            type: string
                          key:
                            type: string
                          serviceAccountKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - key
                        type: object
                      git:
                        properties:
                          branch:
                            type: string
                          depth:
                            format: int64
                            type: integer
                          disableSubmodules:
                            type: boolean
                          fetch:
                            items:
                              type: string
                            type: array
                          insecureIgnoreHostKey:
                            type: boolean
                          insecureSkipTLS:
                            type: boolean
                          passwordSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          repo:
                            type: string
                          revision:
                            type: string
                          singleBranch:
                            type: boolean
                          sshPrivateKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          usernameSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - repo
                        type: object
                      hdfs:
                        properties:
                          addresses:
                            items:
                              type: string
                            type: array
                          dataTransferProtection:
                            type: string
                          force:
                            type: boolean
                          hdfsUser:
                            type: string
                          krbCCacheSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbConfigConfigMap:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbKeytabSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          krbRealm:
                            type: string
                          krbServicePrincipalName:
                            type: string
                          krbUsername:
                            type: string
                          path:
                            type: string
                        required:
                        - path
                        type: object
                      http:
                        properties:
                          auth:
                            properties:
                              basicAuth:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              clientCert:
                                properties:
                                  clientCertSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  clientKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              oauth2:
                                properties:
                                  clientIDSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  clientSecretSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  endpointParams:
                                    items:
                                      properties:
                                        key:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - key
                                      type: object
                                    type: array
                                  scopes:
                                    items:
                                      type: string
                                    type: array
                                  tokenURLSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            type: object
                          headers:
                            items:
                              properties:
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                          url:
                            type: string
                        required:
                        - url
                        type: object
                      oss:
                        properties:
                          accessKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          bucket:
                            type: string
                          createBucketIfNotPresent:
                            type: boolean
                          endpoint:
                            type: string
                          key:
                            type: string
                          lifecycleRule:
                            properties:
                              markDeletionAfterDays:
                                format: int32
                                type: integer
                              markInfrequentAccessAfterDays:
                                format: int32
                                type: integer
                            type: object
                          secretKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          securityToken:
                            type: string
                          useSDKCreds:
                            type: boolean
                        required:
                        - key
                        type: object
                      plugin:
                        properties:
                          configuration:
                            type: string
                          connectionTimeoutSeconds:
                            format: int32
                            type: integer
                          key:
                            type: string
                          name:
                            type: string
                        required:
                        - key
                        type: object
                      raw:
                        properties:
                          data:
                            type: string
                        required:
                        - data
                        type: object
                      s3:
                        properties:
                          accessKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          bucket:
                            type: string
                          caSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          createBucketIfNotPresent:
                            properties:
                              objectLocking:
                                type: boolean
                            type: object
                          encryptionOptions:
                            properties:
                              enableEncryption:
                                type: boolean
                              kmsEncryptionContext:
                                type: string
                              kmsKeyId:
                                type: string
                              serverSideCustomerKeySecret:
                                properties:
                                  key:
                                    type: string
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          endpoint:
                            type: string
                          insecure:
                            type: boolean
                          key:
                            type: string
                          region:
                            type: string
                          roleARN:
                            type: string
                          secretKeySecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          sessionTokenSecret:
                            properties:
                              key:
                                type: string
                              name:
                                default: ''
                                type: string
                              optional:
                                type: boolean
                            required:
                            - key
                            type: object
                            x-kubernetes-map-type: atomic
                          useSDKCreds:
                            type: boolean
                        type: object
                    type: object
                    x-kubernetes-validations:
                    - message: at most one artifact location can be specified
                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                  automountServiceAccountToken:
                    type: boolean
                  container:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      command:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                  x-kubernetes-map-type: atomic
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                  x-kubernetes-map-type: atomic
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - name
                        x-kubernetes-list-type: map
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          stopSignal:
                            type: string
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      resizePolicy:
                        items:
                          properties:
                            resourceName:
                              type: string
                            restartPolicy:
                              type: string
                          required:
                          - resourceName
                          - restartPolicy
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      resources:
                        properties:
                          claims:
                            items:
                              properties:
                                name:
                                  type: string
                                request:
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      restartPolicy:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          appArmorProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              drop:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - devicePath
                        x-kubernetes-list-type: map
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - mountPath
                        x-kubernetes-list-type: map
                      workingDir:
                        type: string
                    type: object
                  containerSet:
                    properties:
                      containers:
                        items:
                          properties:
                            args:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            command:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            dependencies:
                              items:
                                type: string
                              type: array
                            env:
                              items:
                                properties:
                                  name:
                                    type: string
                                  value:
                                    type: string
                                  valueFrom:
                                    properties:
                                      configMapKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      fieldRef:
                                        properties:
                                          apiVersion:
                                            type: string
                                          fieldPath:
                                            type: string
                                        required:
                                        - fieldPath
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      resourceFieldRef:
                                        properties:
                                          containerName:
                                            type: string
                                          divisor:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          resource:
                                            type: string
                                        required:
                                        - resource
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      secretKeyRef:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            envFrom:
                              items:
                                properties:
                                  configMapRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  prefix:
                                    type: string
                                  secretRef:
                                    properties:
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            image:
                              type: string
                            imagePullPolicy:
                              type: string
                            lifecycle:
                              properties:
                                postStart:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                preStop:
                                  properties:
                                    exec:
                                      properties:
                                        command:
                                          items:
                                            type: string
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    httpGet:
                                      properties:
                                        host:
                                          type: string
                                        httpHeaders:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        path:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                        scheme:
                                          type: string
                                      required:
                                      - port
                                      type: object
                                    sleep:
                                      properties:
                                        seconds:
                                          format: int64
                                          type: integer
                                      required:
                                      - seconds
                                      type: object
                                    tcpSocket:
                                      properties:
                                        host:
                                          type: string
                                        port:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          x-kubernetes-int-or-string: true
                                      required:
                                      - port
                                      type: object
                                  type: object
                                stopSignal:
                                  type: string
                              type: object
                            livenessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            name:
                              type: string
                            ports:
                              items:
                                properties:
                                  containerPort:
                                    format: int32
                                    type: integer
                                  hostIP:
                                    type: string
                                  hostPort:
                                    format: int32
                                    type: integer
                                  name:
                                    type: string
                                  protocol:
                                    default: TCP
                                    type: string
                                required:
                                - containerPort
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - containerPort
                              - protocol
                              x-kubernetes-list-type: map
                            readinessProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            resizePolicy:
                              items:
                                properties:
                                  resourceName:
                                    type: string
                                  restartPolicy:
                                    type: string
                                required:
                                - resourceName
                                - restartPolicy
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            resources:
                              properties:
                                claims:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      request:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                  x-kubernetes-list-map-keys:
                                  - name
                                  x-kubernetes-list-type: map
                                limits:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                                requests:
                                  additionalProperties:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  type: object
                              type: object
                            restartPolicy:
                              type: string
                            securityContext:
                              properties:
                                allowPrivilegeEscalation:
                                  type: boolean
                                appArmorProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                capabilities:
                                  properties:
                                    add:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    drop:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                privileged:
                                  type: boolean
                                procMount:
                                  type: string
                                readOnlyRootFilesystem:
                                  type: boolean
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                seccompProfile:
                                  properties:
                                    localhostProfile:
                                      type: string
                                    type:
                                      type: string
                                  required:
                                  - type
                                  type: object
                                windowsOptions:
                                  properties:
                                    gmsaCredentialSpec:
                                      type: string
                                    gmsaCredentialSpecName:
                                      type: string
                                    hostProcess:
                                      type: boolean
                                    runAsUserName:
                                      type: string
                                  type: object
                              type: object
                            startupProbe:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                failureThreshold:
                                  format: int32
                                  type: integer
                                grpc:
                                  properties:
                                    port:
                                      format: int32
                                      type: integer
                                    service:
                                      default: ''
                                      type: string
                                  required:
                                  - port
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                initialDelaySeconds:
                                  format: int32
                                  type: integer
                                periodSeconds:
                                  format: int32
                                  type: integer
                                successThreshold:
                                  format: int32
                                  type: integer
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                                terminationGracePeriodSeconds:
                                  format: int64
                                  type: integer
                                timeoutSeconds:
                                  format: int32
                                  type: integer
                              type: object
                            stdin:
                              type: boolean
                            stdinOnce:
                              type: boolean
                            terminationMessagePath:
                              type: string
                            terminationMessagePolicy:
                              type: string
                            tty:
                              type: boolean
                            volumeDevices:
                              items:
                                properties:
                                  devicePath:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - devicePath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - devicePath
                              x-kubernetes-list-type: map
                            volumeMounts:
                              items:
                                properties:
                                  mountPath:
                                    type: string
                                  mountPropagation:
                                    type: string
                                  name:
                                    type: string
                                  readOnly:
                                    type: boolean
                                  recursiveReadOnly:
                                    type: string
                                  subPath:
                                    type: string
                                  subPathExpr:
                                    type: string
                                required:
                                - mountPath
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - mountPath
                              x-kubernetes-list-type: map
                            workingDir:
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      retryStrategy:
                        properties:
                          duration:
                            type: string
                          retries:
                            anyOf:
                            - type: integer
                            - type: string
                            x-kubernetes-int-or-string: true
                        required:
                        - retries
                        type: object
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                    required:
                    - containers
                    type: object
                  daemon:
                    type: boolean
                  dag:
                    properties:
                      failFast:
                        type: boolean
                      target:
                        type: string
                      tasks:
                        items:
                          properties:
                            arguments:
                              properties:
                                artifacts:
                                  items:
                                    properties:
                                      archive:
                                        properties:
                                          none:
                                            type: object
                                          tar:
                                            properties:
                                              compressionLevel:
                                                format: int32
                                                type: integer
                                            type: object
                                          zip:
                                            type: object
                                        type: object
                                      archiveLogs:
                                        type: boolean
                                      artifactGC:
                                        properties:
                                          podMetadata:
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                          serviceAccountName:
                                            type: string
                                          strategy:
                                            enum:
                                            - ''
                                            - OnWorkflowCompletion
                                            - OnWorkflowDeletion
                                            - Never
                                            type: string
                                        type: object
                                      artifactory:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          url:
                                            type: string
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - url
                                        type: object
                                      azure:
                                        properties:
                                          accountKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          blob:
                                            type: string
                                          container:
                                            type: string
                                          endpoint:
                                            type: string
                                          useSDKCreds:
                                            type: boolean
                                        required:
                                        - blob
                                        - container
                                        - endpoint
                                        type: object
                                      deleted:
                                        type: boolean
                                      from:
                                        type: string
                                      fromExpression:
                                        type: string
                                      gcs:
                                        properties:
                                          bucket:
                                            type: string
                                          key:
                                            type: string
                                          serviceAccountKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - key
                                        type: object
                                      git:
                                        properties:
                                          branch:
                                            type: string
                                          depth:
                                            format: int64
                                            type: integer
                                          disableSubmodules:
                                            type: boolean
                                          fetch:
                                            items:
                                              type: string
                                            type: array
                                          insecureIgnoreHostKey:
                                            type: boolean
                                          insecureSkipTLS:
                                            type: boolean
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          repo:
                                            type: string
                                          revision:
                                            type: string
                                          singleBranch:
                                            type: boolean
                                          sshPrivateKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - repo
                                        type: object
                                      globalName:
                                        type: string
                                      hdfs:
                                        properties:
                                          addresses:
                                            items:
                                              type: string
                                            type: array
                                          dataTransferProtection:
                                            type: string
                                          force:
                                            type: boolean
                                          hdfsUser:
                                            type: string
                                          krbCCacheSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbConfigConfigMap:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbKeytabSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbRealm:
                                            type: string
                                          krbServicePrincipalName:
                                            type: string
                                          krbUsername:
                                            type: string
                                          path:
                                            type: string
                                        required:
                                        - path
                                        type: object
                                      http:
                                        properties:
                                          auth:
                                            properties:
                                              basicAuth:
                                                properties:
                                                  passwordSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              clientCert:
                                                properties:
                                                  clientCertSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              oauth2:
                                                properties:
                                                  clientIDSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientSecretSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  endpointParams:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        value:
                                                          type: string
                                                      required:
                                                      - key
                                                      type: object
                                                    type: array
                                                  scopes:
                                                    items:
                                                      type: string
                                                    type: array
                                                  tokenURLSecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                            type: object
                                          headers:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          url:
                                            type: string
                                        required:
                                        - url
                                        type: object
                                      mode:
                                        format: int32
                                        maximum: 511
                                        minimum: 0
                                        type: integer
                                      name:
                                        pattern: ^[-a-zA-Z0-9_{}.]+$
                                        type: string
                                      optional:
                                        type: boolean
                                      oss:
                                        properties:
                                          accessKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            type: string
                                          createBucketIfNotPresent:
                                            type: boolean
                                          endpoint:
                                            type: string
                                          key:
                                            type: string
                                          lifecycleRule:
                                            properties:
                                              markDeletionAfterDays:
                                                format: int32
                                                type: integer
                                              markInfrequentAccessAfterDays:
                                                format: int32
                                                type: integer
                                            type: object
                                          secretKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          securityToken:
                                            type: string
                                          useSDKCreds:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      path:
                                        type: string
                                      plugin:
                                        properties:
                                          configuration:
                                            type: string
                                          connectionTimeoutSeconds:
                                            format: int32
                                            type: integer
                                          key:
                                            type: string
                                          name:
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      raw:
                                        properties:
                                          data:
                                            type: string
                                        required:
                                        - data
                                        type: object
                                      recurseMode:
                                        type: boolean
                                      s3:
                                        properties:
                                          accessKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            type: string
                                          caSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          createBucketIfNotPresent:
                                            properties:
                                              objectLocking:
                                                type: boolean
                                            type: object
                                          encryptionOptions:
                                            properties:
                                              enableEncryption:
                                                type: boolean
                                              kmsEncryptionContext:
                                                type: string
                                              kmsKeyId:
                                                type: string
                                              serverSideCustomerKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          endpoint:
                                            type: string
                                          insecure:
                                            type: boolean
                                          key:
                                            type: string
                                          region:
                                            type: string
                                          roleARN:
                                            type: string
                                          secretKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          sessionTokenSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          useSDKCreds:
                                            type: boolean
                                        type: object
                                      subPath:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                    x-kubernetes-validations:
                                    - message: at most one artifact location can be specified
                                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                  type: array
                                parameters:
                                  items:
                                    properties:
                                      default:
                                        type: string
                                      description:
                                        type: string
                                      enum:
                                        items:
                                          type: string
                                        minItems: 1
                                        type: array
                                      globalName:
                                        type: string
                                      name:
                                        pattern: ^[-a-zA-Z0-9_]+$
                                        type: string
                                      value:
                                        type: string
                                      valueFrom:
                                        properties:
                                          configMapKeyRef:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          default:
                                            type: string
                                          event:
                                            type: string
                                          expression:
                                            type: string
                                          jqFilter:
                                            type: string
                                          jsonPath:
                                            type: string
                                          parameter:
                                            type: string
                                          path:
                                            type: string
                                          supplied:
                                            type: object
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  type: array
                              type: object
                            continueOn:
                              properties:
                                error:
                                  type: boolean
                                failed:
                                  type: boolean
                              type: object
                            dependencies:
                              items:
                                type: string
                              type: array
                            depends:
                              type: string
                            hooks:
                              additionalProperties:
                                properties:
                                  arguments:
                                    properties:
                                      artifacts:
                                        items:
                                          properties:
                                            archive:
                                              properties:
                                                none:
                                                  type: object
                                                tar:
                                                  properties:
                                                    compressionLevel:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                zip:
                                                  type: object
                                              type: object
                                            archiveLogs:
                                              type: boolean
                                            artifactGC:
                                              properties:
                                                podMetadata:
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                serviceAccountName:
                                                  type: string
                                                strategy:
                                                  enum:
                                                  - ''
                                                  - OnWorkflowCompletion
                                                  - OnWorkflowDeletion
                                                  - Never
                                                  type: string
                                              type: object
                                            artifactory:
                                              properties:
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                url:
                                                  type: string
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - url
                                              type: object
                                            azure:
                                              properties:
                                                accountKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                blob:
                                                  type: string
                                                container:
                                                  type: string
                                                endpoint:
                                                  type: string
                                                useSDKCreds:
                                                  type: boolean
                                              required:
                                              - blob
                                              - container
                                              - endpoint
                                              type: object
                                            deleted:
                                              type: boolean
                                            from:
                                              type: string
                                            fromExpression:
                                              type: string
                                            gcs:
                                              properties:
                                                bucket:
                                                  type: string
                                                key:
                                                  type: string
                                                serviceAccountKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - key
                                              type: object
                                            git:
                                              properties:
                                                branch:
                                                  type: string
                                                depth:
                                                  format: int64
                                                  type: integer
                                                disableSubmodules:
                                                  type: boolean
                                                fetch:
                                                  items:
                                                    type: string
                                                  type: array
                                                insecureIgnoreHostKey:
                                                  type: boolean
                                                insecureSkipTLS:
                                                  type: boolean
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                repo:
                                                  type: string
                                                revision:
                                                  type: string
                                                singleBranch:
                                                  type: boolean
                                                sshPrivateKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - repo
                                              type: object
                                            globalName:
                                              type: string
                                            hdfs:
                                              properties:
                                                addresses:
                                                  items:
                                                    type: string
                                                  type: array
                                                dataTransferProtection:
                                                  type: string
                                                force:
                                                  type: boolean
                                                hdfsUser:
                                                  type: string
                                                krbCCacheSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbConfigConfigMap:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbKeytabSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbRealm:
                                                  type: string
                                                krbServicePrincipalName:
                                                  type: string
                                                krbUsername:
                                                  type: string
                                                path:
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                            http:
                                              properties:
                                                auth:
                                                  properties:
                                                    basicAuth:
                                                      properties:
                                                        passwordSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        usernameSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    clientCert:
                                                      properties:
                                                        clientCertSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientKeySecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    oauth2:
                                                      properties:
                                                        clientIDSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientSecretSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        endpointParams:
                                                          items:
                                                            properties:
                                                              key:
                                                                type: string
                                                              value:
                                                                type: string
                                                            required:
                                                            - key
                                                            type: object
                                                          type: array
                                                        scopes:
                                                          items:
                                                            type: string
                                                          type: array
                                                        tokenURLSecret:
                                                          properties:
                                                            key:
                                                              type: string
                                                            name:
                                                              default: ''
                                                              type: string
                                                            optional:
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                  type: object
                                                headers:
                                                  items:
                                                    properties:
                                                      name:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                url:
                                                  type: string
                                              required:
                                              - url
                                              type: object
                                            mode:
                                              format: int32
                                              maximum: 511
                                              minimum: 0
                                              type: integer
                                            name:
                                              pattern: ^[-a-zA-Z0-9_{}.]+$
                                              type: string
                                            optional:
                                              type: boolean
                                            oss:
                                              properties:
                                                accessKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  type: string
                                                createBucketIfNotPresent:
                                                  type: boolean
                                                endpoint:
                                                  type: string
                                                key:
                                                  type: string
                                                lifecycleRule:
                                                  properties:
                                                    markDeletionAfterDays:
                                                      format: int32
                                                      type: integer
                                                    markInfrequentAccessAfterDays:
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                secretKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                securityToken:
                                                  type: string
                                                useSDKCreds:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            path:
                                              type: string
                                            plugin:
                                              properties:
                                                configuration:
                                                  type: string
                                                connectionTimeoutSeconds:
                                                  format: int32
                                                  type: integer
                                                key:
                                                  type: string
                                                name:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            raw:
                                              properties:
                                                data:
                                                  type: string
                                              required:
                                              - data
                                              type: object
                                            recurseMode:
                                              type: boolean
                                            s3:
                                              properties:
                                                accessKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  type: string
                                                caSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                createBucketIfNotPresent:
                                                  properties:
                                                    objectLocking:
                                                      type: boolean
                                                  type: object
                                                encryptionOptions:
                                                  properties:
                                                    enableEncryption:
                                                      type: boolean
                                                    kmsEncryptionContext:
                                                      type: string
                                                    kmsKeyId:
                                                      type: string
                                                    serverSideCustomerKeySecret:
                                                      properties:
                                                        key:
                                                          type: string
                                                        name:
                                                          default: ''
                                                          type: string
                                                        optional:
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                endpoint:
                                                  type: string
                                                insecure:
                                                  type: boolean
                                                key:
                                                  type: string
                                                region:
                                                  type: string
                                                roleARN:
                                                  type: string
                                                secretKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                sessionTokenSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                useSDKCreds:
                                                  type: boolean
                                              type: object
                                            subPath:
                                              type: string
                                          required:
                                          - name
                                          type: object
                                          x-kubernetes-validations:
                                          - message: at most one artifact location can be specified
                                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                        type: array
                                      parameters:
                                        items:
                                          properties:
                                            default:
                                              type: string
                                            description:
                                              type: string
                                            enum:
                                              items:
                                                type: string
                                              minItems: 1
                                              type: array
                                            globalName:
                                              type: string
                                            name:
                                              pattern: ^[-a-zA-Z0-9_]+$
                                              type: string
                                            value:
                                              type: string
                                            valueFrom:
                                              properties:
                                                configMapKeyRef:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                default:
                                                  type: string
                                                event:
                                                  type: string
                                                expression:
                                                  type: string
                                                jqFilter:
                                                  type: string
                                                jsonPath:
                                                  type: string
                                                parameter:
                                                  type: string
                                                path:
                                                  type: string
                                                supplied:
                                                  type: object
                                              type: object
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                                  expression:
                                    type: string
                                  template:
                                    type: string
                                  templateRef:
                                    properties:
                                      clusterScope:
                                        type: boolean
                                      name:
                                        type: string
                                      template:
                                        type: string
                                    type: object
                                type: object
                              type: object
                            inline:
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              maxLength: 128
                              pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                              type: string
                            onExit:
                              type: string
                            template:
                              type: string
                            templateRef:
                              properties:
                                clusterScope:
                                  type: boolean
                                name:
                                  type: string
                                template:
                                  type: string
                              type: object
                            when:
                              type: string
                            withItems:
                              x-kubernetes-preserve-unknown-fields: true
                            withParam:
                              type: string
                            withSequence:
                              properties:
                                count:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                end:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                format:
                                  type: string
                                start:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              type: object
                              x-kubernetes-validations:
                              - message: only one of count or end can be defined
                                rule: '!(has(self.count) && has(self.end))'
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: cannot use both 'depends' and 'dependencies'
                            rule: '!has(self.depends) || !has(self.dependencies)'
                          - message: cannot use 'continueOn' when using 'depends'
                            rule: '!has(self.depends) || !has(self.continueOn)'
                          - message: task name cannot begin with a digit when using 'depends' or 'dependencies'
                            rule: '!(has(self.depends) || has(self.dependencies)) || !self.name.matches(''^[0-9]'')'
                        maxItems: 200
                        minItems: 1
                        type: array
                    required:
                    - tasks
                    type: object
                  data:
                    properties:
                      source:
                        properties:
                          artifactPaths:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: object
                      transformation:
                        items:
                          properties:
                            expression:
                              type: string
                          required:
                          - expression
                          type: object
                        type: array
                    required:
                    - source
                    - transformation
                    type: object
                  executor:
                    properties:
                      serviceAccountName:
                        type: string
                    type: object
                  failFast:
                    type: boolean
                  hostAliases:
                    items:
                      properties:
                        hostnames:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        ip:
                          type: string
                      required:
                      - ip
                      type: object
                    type: array
                  http:
                    properties:
                      body:
                        type: string
                      bodyFrom:
                        properties:
                          bytes:
                            format: byte
                            type: string
                        type: object
                      headers:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      insecureSkipVerify:
                        type: boolean
                      method:
                        type: string
                      successCondition:
                        type: string
                      timeoutSeconds:
                        format: int64
                        type: integer
                      url:
                        type: string
                    required:
                    - url
                    type: object
                  initContainers:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              type: string
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        mirrorVolumeMounts:
                          type: boolean
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          items:
                            properties:
                              resourceName:
                                type: string
                              restartPolicy:
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          properties:
                            claims:
                              items:
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        restartPolicy:
                          type: string
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  inputs:
                    properties:
                      artifacts:
                        items:
                          properties:
                            archive:
                              properties:
                                none:
                                  type: object
                                tar:
                                  properties:
                                    compressionLevel:
                                      format: int32
                                      type: integer
                                  type: object
                                zip:
                                  type: object
                              type: object
                            archiveLogs:
                              type: boolean
                            artifactGC:
                              properties:
                                podMetadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                serviceAccountName:
                                  type: string
                                strategy:
                                  enum:
                                  - ''
                                  - OnWorkflowCompletion
                                  - OnWorkflowDeletion
                                  - Never
                                  type: string
                              type: object
                            artifactory:
                              properties:
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  type: string
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              properties:
                                accountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  type: string
                                container:
                                  type: string
                                endpoint:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            deleted:
                              type: boolean
                            from:
                              type: string
                            fromExpression:
                              type: string
                            gcs:
                              properties:
                                bucket:
                                  type: string
                                key:
                                  type: string
                                serviceAccountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              properties:
                                branch:
                                  type: string
                                depth:
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  type: boolean
                                fetch:
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  type: boolean
                                insecureSkipTLS:
                                  type: boolean
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  type: string
                                revision:
                                  type: string
                                singleBranch:
                                  type: boolean
                                sshPrivateKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            globalName:
                              type: string
                            hdfs:
                              properties:
                                addresses:
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  type: string
                                force:
                                  type: boolean
                                hdfsUser:
                                  type: string
                                krbCCacheSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  type: string
                                krbServicePrincipalName:
                                  type: string
                                krbUsername:
                                  type: string
                                path:
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              properties:
                                auth:
                                  properties:
                                    basicAuth:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      properties:
                                        clientCertSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      properties:
                                        clientIDSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  type: string
                              required:
                              - url
                              type: object
                            mode:
                              format: int32
                              maximum: 511
                              minimum: 0
                              type: integer
                            name:
                              pattern: ^[-a-zA-Z0-9_{}.]+$
                              type: string
                            optional:
                              type: boolean
                            oss:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                createBucketIfNotPresent:
                                  type: boolean
                                endpoint:
                                  type: string
                                key:
                                  type: string
                                lifecycleRule:
                                  properties:
                                    markDeletionAfterDays:
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - key
                              type: object
                            path:
                              type: string
                            plugin:
                              properties:
                                configuration:
                                  type: string
                                connectionTimeoutSeconds:
                                  format: int32
                                  type: integer
                                key:
                                  type: string
                                name:
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              properties:
                                data:
                                  type: string
                              required:
                              - data
                              type: object
                            recurseMode:
                              type: boolean
                            s3:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                caSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  properties:
                                    objectLocking:
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  properties:
                                    enableEncryption:
                                      type: boolean
                                    kmsEncryptionContext:
                                      type: string
                                    kmsKeyId:
                                      type: string
                                    serverSideCustomerKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  type: string
                                insecure:
                                  type: boolean
                                key:
                                  type: string
                                region:
                                  type: string
                                roleARN:
                                  type: string
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  type: boolean
                              type: object
                            subPath:
                              type: string
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: array
                      parameters:
                        items:
                          properties:
                            default:
                              type: string
                            description:
                              type: string
                            enum:
                              items:
                                type: string
                              minItems: 1
                              type: array
                            globalName:
                              type: string
                            name:
                              pattern: ^[-a-zA-Z0-9_]+$
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                default:
                                  type: string
                                event:
                                  type: string
                                expression:
                                  type: string
                                jqFilter:
                                  type: string
                                jsonPath:
                                  type: string
                                parameter:
                                  type: string
                                path:
                                  type: string
                                supplied:
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        maxItems: 500
                        type: array
                    type: object
                  memoize:
                    properties:
                      cache:
                        properties:
                          configMap:
                            properties:
                              name:
                                default: ''
                                type: string
                            type: object
                            x-kubernetes-map-type: atomic
                        required:
                        - configMap
                        type: object
                      key:
                        type: string
                      maxAge:
                        type: string
                    required:
                    - cache
                    - key
                    - maxAge
                    type: object
                  metadata:
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        type: object
                    type: object
                  metrics:
                    properties:
                      prometheus:
                        items:
                          properties:
                            counter:
                              properties:
                                value:
                                  minLength: 1
                                  type: string
                              required:
                              - value
                              type: object
                            gauge:
                              properties:
                                operation:
                                  enum:
                                  - Set
                                  - Add
                                  - Sub
                                  type: string
                                realtime:
                                  type: boolean
                                value:
                                  maxLength: 256
                                  minLength: 1
                                  type: string
                              required:
                              - realtime
                              - value
                              type: object
                              x-kubernetes-validations:
                              - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                            help:
                              minLength: 1
                              type: string
                            histogram:
                              properties:
                                buckets:
                                  items:
                                    type: number
                                  type: array
                                value:
                                  minLength: 1
                                  type: string
                              required:
                              - buckets
                              - value
                              type: object
                            labels:
                              items:
                                properties:
                                  key:
                                    pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                    type: string
                                  value:
                                    type: string
                                required:
                                - key
                                - value
                                type: object
                              type: array
                            name:
                              pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                              type: string
                            when:
                              type: string
                          required:
                          - help
                          - name
                          type: object
                        maxItems: 100
                        type: array
                    required:
                    - prometheus
                    type: object
                  name:
                    maxLength: 128
                    pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                    type: string
                  nodeSelector:
                    additionalProperties:
                      type: string
                    type: object
                  outputs:
                    properties:
                      artifacts:
                        items:
                          properties:
                            archive:
                              properties:
                                none:
                                  type: object
                                tar:
                                  properties:
                                    compressionLevel:
                                      format: int32
                                      type: integer
                                  type: object
                                zip:
                                  type: object
                              type: object
                            archiveLogs:
                              type: boolean
                            artifactGC:
                              properties:
                                podMetadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                  type: object
                                serviceAccountName:
                                  type: string
                                strategy:
                                  enum:
                                  - ''
                                  - OnWorkflowCompletion
                                  - OnWorkflowDeletion
                                  - Never
                                  type: string
                              type: object
                            artifactory:
                              properties:
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                url:
                                  type: string
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - url
                              type: object
                            azure:
                              properties:
                                accountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                blob:
                                  type: string
                                container:
                                  type: string
                                endpoint:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - blob
                              - container
                              - endpoint
                              type: object
                            deleted:
                              type: boolean
                            from:
                              type: string
                            fromExpression:
                              type: string
                            gcs:
                              properties:
                                bucket:
                                  type: string
                                key:
                                  type: string
                                serviceAccountKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - key
                              type: object
                            git:
                              properties:
                                branch:
                                  type: string
                                depth:
                                  format: int64
                                  type: integer
                                disableSubmodules:
                                  type: boolean
                                fetch:
                                  items:
                                    type: string
                                  type: array
                                insecureIgnoreHostKey:
                                  type: boolean
                                insecureSkipTLS:
                                  type: boolean
                                passwordSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                repo:
                                  type: string
                                revision:
                                  type: string
                                singleBranch:
                                  type: boolean
                                sshPrivateKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                usernameSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              required:
                              - repo
                              type: object
                            globalName:
                              type: string
                            hdfs:
                              properties:
                                addresses:
                                  items:
                                    type: string
                                  type: array
                                dataTransferProtection:
                                  type: string
                                force:
                                  type: boolean
                                hdfsUser:
                                  type: string
                                krbCCacheSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbConfigConfigMap:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbKeytabSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                krbRealm:
                                  type: string
                                krbServicePrincipalName:
                                  type: string
                                krbUsername:
                                  type: string
                                path:
                                  type: string
                              required:
                              - path
                              type: object
                            http:
                              properties:
                                auth:
                                  properties:
                                    basicAuth:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    clientCert:
                                      properties:
                                        clientCertSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    oauth2:
                                      properties:
                                        clientIDSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        clientSecretSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        endpointParams:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          type: array
                                        scopes:
                                          items:
                                            type: string
                                          type: array
                                        tokenURLSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  type: object
                                headers:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                url:
                                  type: string
                              required:
                              - url
                              type: object
                            mode:
                              format: int32
                              maximum: 511
                              minimum: 0
                              type: integer
                            name:
                              pattern: ^[-a-zA-Z0-9_{}.]+$
                              type: string
                            optional:
                              type: boolean
                            oss:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                createBucketIfNotPresent:
                                  type: boolean
                                endpoint:
                                  type: string
                                key:
                                  type: string
                                lifecycleRule:
                                  properties:
                                    markDeletionAfterDays:
                                      format: int32
                                      type: integer
                                    markInfrequentAccessAfterDays:
                                      format: int32
                                      type: integer
                                  type: object
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                securityToken:
                                  type: string
                                useSDKCreds:
                                  type: boolean
                              required:
                              - key
                              type: object
                            path:
                              type: string
                            plugin:
                              properties:
                                configuration:
                                  type: string
                                connectionTimeoutSeconds:
                                  format: int32
                                  type: integer
                                key:
                                  type: string
                                name:
                                  type: string
                              required:
                              - key
                              type: object
                            raw:
                              properties:
                                data:
                                  type: string
                              required:
                              - data
                              type: object
                            recurseMode:
                              type: boolean
                            s3:
                              properties:
                                accessKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                bucket:
                                  type: string
                                caSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                createBucketIfNotPresent:
                                  properties:
                                    objectLocking:
                                      type: boolean
                                  type: object
                                encryptionOptions:
                                  properties:
                                    enableEncryption:
                                      type: boolean
                                    kmsEncryptionContext:
                                      type: string
                                    kmsKeyId:
                                      type: string
                                    serverSideCustomerKeySecret:
                                      properties:
                                        key:
                                          type: string
                                        name:
                                          default: ''
                                          type: string
                                        optional:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                endpoint:
                                  type: string
                                insecure:
                                  type: boolean
                                key:
                                  type: string
                                region:
                                  type: string
                                roleARN:
                                  type: string
                                secretKeySecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                sessionTokenSecret:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                useSDKCreds:
                                  type: boolean
                              type: object
                            subPath:
                              type: string
                          required:
                          - name
                          type: object
                          x-kubernetes-validations:
                          - message: at most one artifact location can be specified
                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        type: array
                      exitCode:
                        type: string
                      parameters:
                        items:
                          properties:
                            default:
                              type: string
                            description:
                              type: string
                            enum:
                              items:
                                type: string
                              minItems: 1
                              type: array
                            globalName:
                              type: string
                            name:
                              pattern: ^[-a-zA-Z0-9_]+$
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                default:
                                  type: string
                                event:
                                  type: string
                                expression:
                                  type: string
                                jqFilter:
                                  type: string
                                jsonPath:
                                  type: string
                                parameter:
                                  type: string
                                path:
                                  type: string
                                supplied:
                                  type: object
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                      result:
                        type: string
                    type: object
                  parallelism:
                    format: int64
                    minimum: 1
                    type: integer
                  plugin:
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                  podSpecPatch:
                    type: string
                  priorityClassName:
                    type: string
                  resource:
                    properties:
                      action:
                        enum:
                        - get
                        - create
                        - apply
                        - delete
                        - replace
                        - patch
                        type: string
                      failureCondition:
                        type: string
                      flags:
                        items:
                          type: string
                        type: array
                      manifest:
                        type: string
                      manifestFrom:
                        properties:
                          artifact:
                            properties:
                              archive:
                                properties:
                                  none:
                                    type: object
                                  tar:
                                    properties:
                                      compressionLevel:
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    type: object
                                type: object
                              archiveLogs:
                                type: boolean
                              artifactGC:
                                properties:
                                  podMetadata:
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    type: string
                                  strategy:
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                properties:
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    type: string
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                properties:
                                  accountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    type: string
                                  container:
                                    type: string
                                  endpoint:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                type: boolean
                              from:
                                type: string
                              fromExpression:
                                type: string
                              gcs:
                                properties:
                                  bucket:
                                    type: string
                                  key:
                                    type: string
                                  serviceAccountKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                properties:
                                  branch:
                                    type: string
                                  depth:
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    type: boolean
                                  fetch:
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    type: boolean
                                  insecureSkipTLS:
                                    type: boolean
                                  passwordSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    type: string
                                  revision:
                                    type: string
                                  singleBranch:
                                    type: boolean
                                  sshPrivateKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                type: string
                              hdfs:
                                properties:
                                  addresses:
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    type: string
                                  force:
                                    type: boolean
                                  hdfsUser:
                                    type: string
                                  krbCCacheSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    type: string
                                  krbServicePrincipalName:
                                    type: string
                                  krbUsername:
                                    type: string
                                  path:
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                properties:
                                  auth:
                                    properties:
                                      basicAuth:
                                        properties:
                                          passwordSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        properties:
                                          clientCertSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        properties:
                                          clientIDSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            properties:
                                              key:
                                                type: string
                                              name:
                                                default: ''
                                                type: string
                                              optional:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                type: boolean
                              oss:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  createBucketIfNotPresent:
                                    type: boolean
                                  endpoint:
                                    type: string
                                  key:
                                    type: string
                                  lifecycleRule:
                                    properties:
                                      markDeletionAfterDays:
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    type: string
                                  useSDKCreds:
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                type: string
                              plugin:
                                properties:
                                  configuration:
                                    type: string
                                  connectionTimeoutSeconds:
                                    format: int32
                                    type: integer
                                  key:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                properties:
                                  data:
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                type: boolean
                              s3:
                                properties:
                                  accessKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    type: string
                                  caSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    properties:
                                      objectLocking:
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    properties:
                                      enableEncryption:
                                        type: boolean
                                      kmsEncryptionContext:
                                        type: string
                                      kmsKeyId:
                                        type: string
                                      serverSideCustomerKeySecret:
                                        properties:
                                          key:
                                            type: string
                                          name:
                                            default: ''
                                            type: string
                                          optional:
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    type: string
                                  insecure:
                                    type: boolean
                                  key:
                                    type: string
                                  region:
                                    type: string
                                  roleARN:
                                    type: string
                                  secretKeySecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    type: boolean
                                type: object
                              subPath:
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                        required:
                        - artifact
                        type: object
                      mergeStrategy:
                        enum:
                        - strategic
                        - merge
                        - json
                        type: string
                      setOwnerReference:
                        type: boolean
                      successCondition:
                        type: string
                    required:
                    - action
                    type: object
                    x-kubernetes-validations:
                    - message: only one of manifest or manifestFrom can be specified
                      rule: (has(self.manifest) && !has(self.manifestFrom)) || (!has(self.manifest) && has(self.manifestFrom)) || (!has(self.manifest) && !has(self.manifestFrom))
                  retryStrategy:
                    properties:
                      affinity:
                        properties:
                          nodeAntiAffinity:
                            type: object
                        type: object
                      backoff:
                        properties:
                          cap:
                            type: string
                          duration:
                            type: string
                          factor:
                            anyOf:
                            - type: integer
                            - type: string
                            x-kubernetes-int-or-string: true
                          maxDuration:
                            type: string
                        type: object
                      expression:
                        type: string
                      limit:
                        anyOf:
                        - type: integer
                        - type: string
                        x-kubernetes-int-or-string: true
                      retryPolicy:
                        enum:
                        - Always
                        - OnFailure
                        - OnError
                        - OnTransientError
                        type: string
                    type: object
                  schedulerName:
                    type: string
                  script:
                    properties:
                      args:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      command:
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: atomic
                      env:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                            valueFrom:
                              properties:
                                configMapKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                                fieldRef:
                                  properties:
                                    apiVersion:
                                      type: string
                                    fieldPath:
                                      type: string
                                  required:
                                  - fieldPath
                                  type: object
                                  x-kubernetes-map-type: atomic
                                resourceFieldRef:
                                  properties:
                                    containerName:
                                      type: string
                                    divisor:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    resource:
                                      type: string
                                  required:
                                  - resource
                                  type: object
                                  x-kubernetes-map-type: atomic
                                secretKeyRef:
                                  properties:
                                    key:
                                      type: string
                                    name:
                                      default: ''
                                      type: string
                                    optional:
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                          required:
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - name
                        x-kubernetes-list-type: map
                      envFrom:
                        items:
                          properties:
                            configMapRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                            prefix:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      image:
                        type: string
                      imagePullPolicy:
                        type: string
                      lifecycle:
                        properties:
                          postStart:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          preStop:
                            properties:
                              exec:
                                properties:
                                  command:
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              httpGet:
                                properties:
                                  host:
                                    type: string
                                  httpHeaders:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    type: string
                                required:
                                - port
                                type: object
                              sleep:
                                properties:
                                  seconds:
                                    format: int64
                                    type: integer
                                required:
                                - seconds
                                type: object
                              tcpSocket:
                                properties:
                                  host:
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                            type: object
                          stopSignal:
                            type: string
                        type: object
                      livenessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      name:
                        type: string
                      ports:
                        items:
                          properties:
                            containerPort:
                              format: int32
                              type: integer
                            hostIP:
                              type: string
                            hostPort:
                              format: int32
                              type: integer
                            name:
                              type: string
                            protocol:
                              default: TCP
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - containerPort
                        - protocol
                        x-kubernetes-list-type: map
                      readinessProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      resizePolicy:
                        items:
                          properties:
                            resourceName:
                              type: string
                            restartPolicy:
                              type: string
                          required:
                          - resourceName
                          - restartPolicy
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      resources:
                        properties:
                          claims:
                            items:
                              properties:
                                name:
                                  type: string
                                request:
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            type: object
                        type: object
                      restartPolicy:
                        type: string
                      securityContext:
                        properties:
                          allowPrivilegeEscalation:
                            type: boolean
                          appArmorProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          capabilities:
                            properties:
                              add:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              drop:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          privileged:
                            type: boolean
                          procMount:
                            type: string
                          readOnlyRootFilesystem:
                            type: boolean
                          runAsGroup:
                            format: int64
                            type: integer
                          runAsNonRoot:
                            type: boolean
                          runAsUser:
                            format: int64
                            type: integer
                          seLinuxOptions:
                            properties:
                              level:
                                type: string
                              role:
                                type: string
                              type:
                                type: string
                              user:
                                type: string
                            type: object
                          seccompProfile:
                            properties:
                              localhostProfile:
                                type: string
                              type:
                                type: string
                            required:
                            - type
                            type: object
                          windowsOptions:
                            properties:
                              gmsaCredentialSpec:
                                type: string
                              gmsaCredentialSpecName:
                                type: string
                              hostProcess:
                                type: boolean
                              runAsUserName:
                                type: string
                            type: object
                        type: object
                      source:
                        type: string
                      startupProbe:
                        properties:
                          exec:
                            properties:
                              command:
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          failureThreshold:
                            format: int32
                            type: integer
                          grpc:
                            properties:
                              port:
                                format: int32
                                type: integer
                              service:
                                default: ''
                                type: string
                            required:
                            - port
                            type: object
                          httpGet:
                            properties:
                              host:
                                type: string
                              httpHeaders:
                                items:
                                  properties:
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              scheme:
                                type: string
                            required:
                            - port
                            type: object
                          initialDelaySeconds:
                            format: int32
                            type: integer
                          periodSeconds:
                            format: int32
                            type: integer
                          successThreshold:
                            format: int32
                            type: integer
                          tcpSocket:
                            properties:
                              host:
                                type: string
                              port:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            required:
                            - port
                            type: object
                          terminationGracePeriodSeconds:
                            format: int64
                            type: integer
                          timeoutSeconds:
                            format: int32
                            type: integer
                        type: object
                      stdin:
                        type: boolean
                      stdinOnce:
                        type: boolean
                      terminationMessagePath:
                        type: string
                      terminationMessagePolicy:
                        type: string
                      tty:
                        type: boolean
                      volumeDevices:
                        items:
                          properties:
                            devicePath:
                              type: string
                            name:
                              type: string
                          required:
                          - devicePath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - devicePath
                        x-kubernetes-list-type: map
                      volumeMounts:
                        items:
                          properties:
                            mountPath:
                              type: string
                            mountPropagation:
                              type: string
                            name:
                              type: string
                            readOnly:
                              type: boolean
                            recursiveReadOnly:
                              type: string
                            subPath:
                              type: string
                            subPathExpr:
                              type: string
                          required:
                          - mountPath
                          - name
                          type: object
                        type: array
                        x-kubernetes-list-map-keys:
                        - mountPath
                        x-kubernetes-list-type: map
                      workingDir:
                        type: string
                    type: object
                  securityContext:
                    properties:
                      appArmorProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      fsGroup:
                        format: int64
                        type: integer
                      fsGroupChangePolicy:
                        type: string
                      runAsGroup:
                        format: int64
                        type: integer
                      runAsNonRoot:
                        type: boolean
                      runAsUser:
                        format: int64
                        type: integer
                      seLinuxChangePolicy:
                        type: string
                      seLinuxOptions:
                        properties:
                          level:
                            type: string
                          role:
                            type: string
                          type:
                            type: string
                          user:
                            type: string
                        type: object
                      seccompProfile:
                        properties:
                          localhostProfile:
                            type: string
                          type:
                            type: string
                        required:
                        - type
                        type: object
                      supplementalGroups:
                        items:
                          format: int64
                          type: integer
                        type: array
                        x-kubernetes-list-type: atomic
                      supplementalGroupsPolicy:
                        type: string
                      sysctls:
                        items:
                          properties:
                            name:
                              type: string
                            value:
                              type: string
                          required:
                          - name
                          - value
                          type: object
                        type: array
                        x-kubernetes-list-type: atomic
                      windowsOptions:
                        properties:
                          gmsaCredentialSpec:
                            type: string
                          gmsaCredentialSpecName:
                            type: string
                          hostProcess:
                            type: boolean
                          runAsUserName:
                            type: string
                        type: object
                    type: object
                  serviceAccountName:
                    type: string
                  sidecars:
                    items:
                      properties:
                        args:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  configMapKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    properties:
                                      key:
                                        type: string
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          items:
                            properties:
                              configMapRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                type: string
                              secretRef:
                                properties:
                                  name:
                                    default: ''
                                    type: string
                                  optional:
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          type: string
                        imagePullPolicy:
                          type: string
                        lifecycle:
                          properties:
                            postStart:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              properties:
                                exec:
                                  properties:
                                    command:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  properties:
                                    host:
                                      type: string
                                    httpHeaders:
                                      items:
                                        properties:
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  properties:
                                    seconds:
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  properties:
                                    host:
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              type: string
                          type: object
                        livenessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        mirrorVolumeMounts:
                          type: boolean
                        name:
                          type: string
                        ports:
                          items:
                            properties:
                              containerPort:
                                format: int32
                                type: integer
                              hostIP:
                                type: string
                              hostPort:
                                format: int32
                                type: integer
                              name:
                                type: string
                              protocol:
                                default: TCP
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          items:
                            properties:
                              resourceName:
                                type: string
                              restartPolicy:
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          properties:
                            claims:
                              items:
                                properties:
                                  name:
                                    type: string
                                  request:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              type: object
                          type: object
                        restartPolicy:
                          type: string
                        securityContext:
                          properties:
                            allowPrivilegeEscalation:
                              type: boolean
                            appArmorProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              properties:
                                add:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              type: boolean
                            procMount:
                              type: string
                            readOnlyRootFilesystem:
                              type: boolean
                            runAsGroup:
                              format: int64
                              type: integer
                            runAsNonRoot:
                              type: boolean
                            runAsUser:
                              format: int64
                              type: integer
                            seLinuxOptions:
                              properties:
                                level:
                                  type: string
                                role:
                                  type: string
                                type:
                                  type: string
                                user:
                                  type: string
                              type: object
                            seccompProfile:
                              properties:
                                localhostProfile:
                                  type: string
                                type:
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              properties:
                                gmsaCredentialSpec:
                                  type: string
                                gmsaCredentialSpecName:
                                  type: string
                                hostProcess:
                                  type: boolean
                                runAsUserName:
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          properties:
                            exec:
                              properties:
                                command:
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              format: int32
                              type: integer
                            grpc:
                              properties:
                                port:
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              properties:
                                host:
                                  type: string
                                httpHeaders:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              format: int32
                              type: integer
                            periodSeconds:
                              format: int32
                              type: integer
                            successThreshold:
                              format: int32
                              type: integer
                            tcpSocket:
                              properties:
                                host:
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            timeoutSeconds:
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          type: boolean
                        stdinOnce:
                          type: boolean
                        terminationMessagePath:
                          type: string
                        terminationMessagePolicy:
                          type: string
                        tty:
                          type: boolean
                        volumeDevices:
                          items:
                            properties:
                              devicePath:
                                type: string
                              name:
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          items:
                            properties:
                              mountPath:
                                type: string
                              mountPropagation:
                                type: string
                              name:
                                type: string
                              readOnly:
                                type: boolean
                              recursiveReadOnly:
                                type: string
                              subPath:
                                type: string
                              subPathExpr:
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  steps:
                    items:
                      items:
                        properties:
                          arguments:
                            properties:
                              artifacts:
                                items:
                                  properties:
                                    archive:
                                      properties:
                                        none:
                                          type: object
                                        tar:
                                          properties:
                                            compressionLevel:
                                              format: int32
                                              type: integer
                                          type: object
                                        zip:
                                          type: object
                                      type: object
                                    archiveLogs:
                                      type: boolean
                                    artifactGC:
                                      properties:
                                        podMetadata:
                                          properties:
                                            annotations:
                                              additionalProperties:
                                                type: string
                                              type: object
                                            labels:
                                              additionalProperties:
                                                type: string
                                              type: object
                                          type: object
                                        serviceAccountName:
                                          type: string
                                        strategy:
                                          enum:
                                          - ''
                                          - OnWorkflowCompletion
                                          - OnWorkflowDeletion
                                          - Never
                                          type: string
                                      type: object
                                    artifactory:
                                      properties:
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        url:
                                          type: string
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - url
                                      type: object
                                    azure:
                                      properties:
                                        accountKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        blob:
                                          type: string
                                        container:
                                          type: string
                                        endpoint:
                                          type: string
                                        useSDKCreds:
                                          type: boolean
                                      required:
                                      - blob
                                      - container
                                      - endpoint
                                      type: object
                                    deleted:
                                      type: boolean
                                    from:
                                      type: string
                                    fromExpression:
                                      type: string
                                    gcs:
                                      properties:
                                        bucket:
                                          type: string
                                        key:
                                          type: string
                                        serviceAccountKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - key
                                      type: object
                                    git:
                                      properties:
                                        branch:
                                          type: string
                                        depth:
                                          format: int64
                                          type: integer
                                        disableSubmodules:
                                          type: boolean
                                        fetch:
                                          items:
                                            type: string
                                          type: array
                                        insecureIgnoreHostKey:
                                          type: boolean
                                        insecureSkipTLS:
                                          type: boolean
                                        passwordSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        repo:
                                          type: string
                                        revision:
                                          type: string
                                        singleBranch:
                                          type: boolean
                                        sshPrivateKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        usernameSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - repo
                                      type: object
                                    globalName:
                                      type: string
                                    hdfs:
                                      properties:
                                        addresses:
                                          items:
                                            type: string
                                          type: array
                                        dataTransferProtection:
                                          type: string
                                        force:
                                          type: boolean
                                        hdfsUser:
                                          type: string
                                        krbCCacheSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbConfigConfigMap:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbKeytabSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        krbRealm:
                                          type: string
                                        krbServicePrincipalName:
                                          type: string
                                        krbUsername:
                                          type: string
                                        path:
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    http:
                                      properties:
                                        auth:
                                          properties:
                                            basicAuth:
                                              properties:
                                                passwordSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            clientCert:
                                              properties:
                                                clientCertSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientKeySecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            oauth2:
                                              properties:
                                                clientIDSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                clientSecretSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                endpointParams:
                                                  items:
                                                    properties:
                                                      key:
                                                        type: string
                                                      value:
                                                        type: string
                                                    required:
                                                    - key
                                                    type: object
                                                  type: array
                                                scopes:
                                                  items:
                                                    type: string
                                                  type: array
                                                tokenURLSecret:
                                                  properties:
                                                    key:
                                                      type: string
                                                    name:
                                                      default: ''
                                                      type: string
                                                    optional:
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                          type: object
                                        headers:
                                          items:
                                            properties:
                                              name:
                                                type: string
                                              value:
                                                type: string
                                            required:
                                            - name
                                            - value
                                            type: object
                                          type: array
                                        url:
                                          type: string
                                      required:
                                      - url
                                      type: object
                                    mode:
                                      format: int32
                                      maximum: 511
                                      minimum: 0
                                      type: integer
                                    name:
                                      pattern: ^[-a-zA-Z0-9_{}.]+$
                                      type: string
                                    optional:
                                      type: boolean
                                    oss:
                                      properties:
                                        accessKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          type: string
                                        createBucketIfNotPresent:
                                          type: boolean
                                        endpoint:
                                          type: string
                                        key:
                                          type: string
                                        lifecycleRule:
                                          properties:
                                            markDeletionAfterDays:
                                              format: int32
                                              type: integer
                                            markInfrequentAccessAfterDays:
                                              format: int32
                                              type: integer
                                          type: object
                                        secretKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        securityToken:
                                          type: string
                                        useSDKCreds:
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                    path:
                                      type: string
                                    plugin:
                                      properties:
                                        configuration:
                                          type: string
                                        connectionTimeoutSeconds:
                                          format: int32
                                          type: integer
                                        key:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - key
                                      type: object
                                    raw:
                                      properties:
                                        data:
                                          type: string
                                      required:
                                      - data
                                      type: object
                                    recurseMode:
                                      type: boolean
                                    s3:
                                      properties:
                                        accessKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        bucket:
                                          type: string
                                        caSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        createBucketIfNotPresent:
                                          properties:
                                            objectLocking:
                                              type: boolean
                                          type: object
                                        encryptionOptions:
                                          properties:
                                            enableEncryption:
                                              type: boolean
                                            kmsEncryptionContext:
                                              type: string
                                            kmsKeyId:
                                              type: string
                                            serverSideCustomerKeySecret:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  default: ''
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        endpoint:
                                          type: string
                                        insecure:
                                          type: boolean
                                        key:
                                          type: string
                                        region:
                                          type: string
                                        roleARN:
                                          type: string
                                        secretKeySecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        sessionTokenSecret:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        useSDKCreds:
                                          type: boolean
                                      type: object
                                    subPath:
                                      type: string
                                  required:
                                  - name
                                  type: object
                                  x-kubernetes-validations:
                                  - message: at most one artifact location can be specified
                                    rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                type: array
                              parameters:
                                items:
                                  properties:
                                    default:
                                      type: string
                                    description:
                                      type: string
                                    enum:
                                      items:
                                        type: string
                                      minItems: 1
                                      type: array
                                    globalName:
                                      type: string
                                    name:
                                      pattern: ^[-a-zA-Z0-9_]+$
                                      type: string
                                    value:
                                      type: string
                                    valueFrom:
                                      properties:
                                        configMapKeyRef:
                                          properties:
                                            key:
                                              type: string
                                            name:
                                              default: ''
                                              type: string
                                            optional:
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        default:
                                          type: string
                                        event:
                                          type: string
                                        expression:
                                          type: string
                                        jqFilter:
                                          type: string
                                        jsonPath:
                                          type: string
                                        parameter:
                                          type: string
                                        path:
                                          type: string
                                        supplied:
                                          type: object
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                            type: object
                          continueOn:
                            properties:
                              error:
                                type: boolean
                              failed:
                                type: boolean
                            type: object
                          hooks:
                            additionalProperties:
                              properties:
                                arguments:
                                  properties:
                                    artifacts:
                                      items:
                                        properties:
                                          archive:
                                            properties:
                                              none:
                                                type: object
                                              tar:
                                                properties:
                                                  compressionLevel:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              zip:
                                                type: object
                                            type: object
                                          archiveLogs:
                                            type: boolean
                                          artifactGC:
                                            properties:
                                              podMetadata:
                                                properties:
                                                  annotations:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                  labels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                              serviceAccountName:
                                                type: string
                                              strategy:
                                                enum:
                                                - ''
                                                - OnWorkflowCompletion
                                                - OnWorkflowDeletion
                                                - Never
                                                type: string
                                            type: object
                                          artifactory:
                                            properties:
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              url:
                                                type: string
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - url
                                            type: object
                                          azure:
                                            properties:
                                              accountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              blob:
                                                type: string
                                              container:
                                                type: string
                                              endpoint:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - blob
                                            - container
                                            - endpoint
                                            type: object
                                          deleted:
                                            type: boolean
                                          from:
                                            type: string
                                          fromExpression:
                                            type: string
                                          gcs:
                                            properties:
                                              bucket:
                                                type: string
                                              key:
                                                type: string
                                              serviceAccountKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - key
                                            type: object
                                          git:
                                            properties:
                                              branch:
                                                type: string
                                              depth:
                                                format: int64
                                                type: integer
                                              disableSubmodules:
                                                type: boolean
                                              fetch:
                                                items:
                                                  type: string
                                                type: array
                                              insecureIgnoreHostKey:
                                                type: boolean
                                              insecureSkipTLS:
                                                type: boolean
                                              passwordSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              repo:
                                                type: string
                                              revision:
                                                type: string
                                              singleBranch:
                                                type: boolean
                                              sshPrivateKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              usernameSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - repo
                                            type: object
                                          globalName:
                                            type: string
                                          hdfs:
                                            properties:
                                              addresses:
                                                items:
                                                  type: string
                                                type: array
                                              dataTransferProtection:
                                                type: string
                                              force:
                                                type: boolean
                                              hdfsUser:
                                                type: string
                                              krbCCacheSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbConfigConfigMap:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbKeytabSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              krbRealm:
                                                type: string
                                              krbServicePrincipalName:
                                                type: string
                                              krbUsername:
                                                type: string
                                              path:
                                                type: string
                                            required:
                                            - path
                                            type: object
                                          http:
                                            properties:
                                              auth:
                                                properties:
                                                  basicAuth:
                                                    properties:
                                                      passwordSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      usernameSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  clientCert:
                                                    properties:
                                                      clientCertSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientKeySecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  oauth2:
                                                    properties:
                                                      clientIDSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      clientSecretSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                      endpointParams:
                                                        items:
                                                          properties:
                                                            key:
                                                              type: string
                                                            value:
                                                              type: string
                                                          required:
                                                          - key
                                                          type: object
                                                        type: array
                                                      scopes:
                                                        items:
                                                          type: string
                                                        type: array
                                                      tokenURLSecret:
                                                        properties:
                                                          key:
                                                            type: string
                                                          name:
                                                            default: ''
                                                            type: string
                                                          optional:
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                type: object
                                              headers:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              url:
                                                type: string
                                            required:
                                            - url
                                            type: object
                                          mode:
                                            format: int32
                                            maximum: 511
                                            minimum: 0
                                            type: integer
                                          name:
                                            pattern: ^[-a-zA-Z0-9_{}.]+$
                                            type: string
                                          optional:
                                            type: boolean
                                          oss:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              createBucketIfNotPresent:
                                                type: boolean
                                              endpoint:
                                                type: string
                                              key:
                                                type: string
                                              lifecycleRule:
                                                properties:
                                                  markDeletionAfterDays:
                                                    format: int32
                                                    type: integer
                                                  markInfrequentAccessAfterDays:
                                                    format: int32
                                                    type: integer
                                                type: object
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              securityToken:
                                                type: string
                                              useSDKCreds:
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                          path:
                                            type: string
                                          plugin:
                                            properties:
                                              configuration:
                                                type: string
                                              connectionTimeoutSeconds:
                                                format: int32
                                                type: integer
                                              key:
                                                type: string
                                              name:
                                                type: string
                                            required:
                                            - key
                                            type: object
                                          raw:
                                            properties:
                                              data:
                                                type: string
                                            required:
                                            - data
                                            type: object
                                          recurseMode:
                                            type: boolean
                                          s3:
                                            properties:
                                              accessKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              bucket:
                                                type: string
                                              caSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              createBucketIfNotPresent:
                                                properties:
                                                  objectLocking:
                                                    type: boolean
                                                type: object
                                              encryptionOptions:
                                                properties:
                                                  enableEncryption:
                                                    type: boolean
                                                  kmsEncryptionContext:
                                                    type: string
                                                  kmsKeyId:
                                                    type: string
                                                  serverSideCustomerKeySecret:
                                                    properties:
                                                      key:
                                                        type: string
                                                      name:
                                                        default: ''
                                                        type: string
                                                      optional:
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              endpoint:
                                                type: string
                                              insecure:
                                                type: boolean
                                              key:
                                                type: string
                                              region:
                                                type: string
                                              roleARN:
                                                type: string
                                              secretKeySecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              sessionTokenSecret:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              useSDKCreds:
                                                type: boolean
                                            type: object
                                          subPath:
                                            type: string
                                        required:
                                        - name
                                        type: object
                                        x-kubernetes-validations:
                                        - message: at most one artifact location can be specified
                                          rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                      type: array
                                    parameters:
                                      items:
                                        properties:
                                          default:
                                            type: string
                                          description:
                                            type: string
                                          enum:
                                            items:
                                              type: string
                                            minItems: 1
                                            type: array
                                          globalName:
                                            type: string
                                          name:
                                            pattern: ^[-a-zA-Z0-9_]+$
                                            type: string
                                          value:
                                            type: string
                                          valueFrom:
                                            properties:
                                              configMapKeyRef:
                                                properties:
                                                  key:
                                                    type: string
                                                  name:
                                                    default: ''
                                                    type: string
                                                  optional:
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              default:
                                                type: string
                                              event:
                                                type: string
                                              expression:
                                                type: string
                                              jqFilter:
                                                type: string
                                              jsonPath:
                                                type: string
                                              parameter:
                                                type: string
                                              path:
                                                type: string
                                              supplied:
                                                type: object
                                            type: object
                                        required:
                                        - name
                                        type: object
                                      type: array
                                  type: object
                                expression:
                                  type: string
                                template:
                                  type: string
                                templateRef:
                                  properties:
                                    clusterScope:
                                      type: boolean
                                    name:
                                      type: string
                                    template:
                                      type: string
                                  type: object
                              type: object
                            type: object
                          inline:
                            x-kubernetes-preserve-unknown-fields: true
                          name:
                            maxLength: 128
                            pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                            type: string
                          onExit:
                            type: string
                          template:
                            type: string
                          templateRef:
                            properties:
                              clusterScope:
                                type: boolean
                              name:
                                type: string
                              template:
                                type: string
                            type: object
                          when:
                            type: string
                          withItems:
                            x-kubernetes-preserve-unknown-fields: true
                          withParam:
                            type: string
                          withSequence:
                            properties:
                              count:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              end:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                              format:
                                type: string
                              start:
                                anyOf:
                                - type: integer
                                - type: string
                                x-kubernetes-int-or-string: true
                            type: object
                            x-kubernetes-validations:
                            - message: only one of count or end can be defined
                              rule: '!(has(self.count) && has(self.end))'
                        type: object
                      type: array
                    minItems: 1
                    type: array
                  suspend:
                    properties:
                      duration:
                        type: string
                    type: object
                  synchronization:
                    properties:
                      mutexes:
                        items:
                          properties:
                            database:
                              type: boolean
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        type: array
                      semaphores:
                        items:
                          properties:
                            configMapKeyRef:
                              properties:
                                key:
                                  type: string
                                name:
                                  default: ''
                                  type: string
                                optional:
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            database:
                              properties:
                                key:
                                  type: string
                              required:
                              - key
                              type: object
                            namespace:
                              type: string
                          type: object
                        type: array
                    type: object
                  timeout:
                    type: string
                  tolerations:
                    items:
                      properties:
                        effect:
                          type: string
                        key:
                          type: string
                        operator:
                          type: string
                        tolerationSeconds:
                          format: int64
                          type: integer
                        value:
                          type: string
                      type: object
                    type: array
                  volumes:
                    items:
                      properties:
                        awsElasticBlockStore:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        azureDisk:
                          properties:
                            cachingMode:
                              type: string
                            diskName:
                              type: string
                            diskURI:
                              type: string
                            fsType:
                              default: ext4
                              type: string
                            kind:
                              type: string
                            readOnly:
                              default: false
                              type: boolean
                          required:
                          - diskName
                          - diskURI
                          type: object
                        azureFile:
                          properties:
                            readOnly:
                              type: boolean
                            secretName:
                              type: string
                            shareName:
                              type: string
                          required:
                          - secretName
                          - shareName
                          type: object
                        cephfs:
                          properties:
                            monitors:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            secretFile:
                              type: string
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            user:
                              type: string
                          required:
                          - monitors
                          type: object
                        cinder:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        configMap:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            name:
                              default: ''
                              type: string
                            optional:
                              type: boolean
                          type: object
                          x-kubernetes-map-type: atomic
                        csi:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            nodePublishSecretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            readOnly:
                              type: boolean
                            volumeAttributes:
                              additionalProperties:
                                type: string
                              type: object
                          required:
                          - driver
                          type: object
                        downwardAPI:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  fieldRef:
                                    properties:
                                      apiVersion:
                                        type: string
                                      fieldPath:
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                  resourceFieldRef:
                                    properties:
                                      containerName:
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        emptyDir:
                          properties:
                            medium:
                              type: string
                            sizeLimit:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                          type: object
                        ephemeral:
                          properties:
                            volumeClaimTemplate:
                              properties:
                                metadata:
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    finalizers:
                                      items:
                                        type: string
                                      type: array
                                    generateName:
                                      type: string
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  type: object
                                spec:
                                  properties:
                                    accessModes:
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    dataSource:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    dataSourceRef:
                                      properties:
                                        apiGroup:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                        namespace:
                                          type: string
                                      required:
                                      - kind
                                      - name
                                      type: object
                                    resources:
                                      properties:
                                        limits:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          type: object
                                        requests:
                                          additionalProperties:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                            x-kubernetes-int-or-string: true
                                          type: object
                                      type: object
                                    selector:
                                      properties:
                                        matchExpressions:
                                          items:
                                            properties:
                                              key:
                                                type: string
                                              operator:
                                                type: string
                                              values:
                                                items:
                                                  type: string
                                                type: array
                                                x-kubernetes-list-type: atomic
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    storageClassName:
                                      type: string
                                    volumeAttributesClassName:
                                      type: string
                                    volumeMode:
                                      type: string
                                    volumeName:
                                      type: string
                                  type: object
                              required:
                              - spec
                              type: object
                          type: object
                        fc:
                          properties:
                            fsType:
                              type: string
                            lun:
                              format: int32
                              type: integer
                            readOnly:
                              type: boolean
                            targetWWNs:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            wwids:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        flexVolume:
                          properties:
                            driver:
                              type: string
                            fsType:
                              type: string
                            options:
                              additionalProperties:
                                type: string
                              type: object
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - driver
                          type: object
                        flocker:
                          properties:
                            datasetName:
                              type: string
                            datasetUUID:
                              type: string
                          type: object
                        gcePersistentDisk:
                          properties:
                            fsType:
                              type: string
                            partition:
                              format: int32
                              type: integer
                            pdName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - pdName
                          type: object
                        gitRepo:
                          properties:
                            directory:
                              type: string
                            repository:
                              type: string
                            revision:
                              type: string
                          required:
                          - repository
                          type: object
                        glusterfs:
                          properties:
                            endpoints:
                              type: string
                            path:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - endpoints
                          - path
                          type: object
                        hostPath:
                          properties:
                            path:
                              type: string
                            type:
                              type: string
                          required:
                          - path
                          type: object
                        image:
                          properties:
                            pullPolicy:
                              type: string
                            reference:
                              type: string
                          type: object
                        iscsi:
                          properties:
                            chapAuthDiscovery:
                              type: boolean
                            chapAuthSession:
                              type: boolean
                            fsType:
                              type: string
                            initiatorName:
                              type: string
                            iqn:
                              type: string
                            iscsiInterface:
                              default: default
                              type: string
                            lun:
                              format: int32
                              type: integer
                            portals:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            targetPortal:
                              type: string
                          required:
                          - iqn
                          - lun
                          - targetPortal
                          type: object
                        name:
                          type: string
                        nfs:
                          properties:
                            path:
                              type: string
                            readOnly:
                              type: boolean
                            server:
                              type: string
                          required:
                          - path
                          - server
                          type: object
                        persistentVolumeClaim:
                          properties:
                            claimName:
                              type: string
                            readOnly:
                              type: boolean
                          required:
                          - claimName
                          type: object
                        photonPersistentDisk:
                          properties:
                            fsType:
                              type: string
                            pdID:
                              type: string
                          required:
                          - pdID
                          type: object
                        portworxVolume:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            volumeID:
                              type: string
                          required:
                          - volumeID
                          type: object
                        projected:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            sources:
                              items:
                                properties:
                                  clusterTrustBundle:
                                    properties:
                                      labelSelector:
                                        properties:
                                          matchExpressions:
                                            items:
                                              properties:
                                                key:
                                                  type: string
                                                operator:
                                                  type: string
                                                values:
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                      path:
                                        type: string
                                      signerName:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  configMap:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  downwardAPI:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  anyOf:
                                                  - type: integer
                                                  - type: string
                                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                  x-kubernetes-int-or-string: true
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  secret:
                                    properties:
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      name:
                                        default: ''
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  serviceAccountToken:
                                    properties:
                                      audience:
                                        type: string
                                      expirationSeconds:
                                        format: int64
                                        type: integer
                                      path:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        quobyte:
                          properties:
                            group:
                              type: string
                            readOnly:
                              type: boolean
                            registry:
                              type: string
                            tenant:
                              type: string
                            user:
                              type: string
                            volume:
                              type: string
                          required:
                          - registry
                          - volume
                          type: object
                        rbd:
                          properties:
                            fsType:
                              type: string
                            image:
                              type: string
                            keyring:
                              default: /etc/ceph/keyring
                              type: string
                            monitors:
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: atomic
                            pool:
                              default: rbd
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            user:
                              default: admin
                              type: string
                          required:
                          - image
                          - monitors
                          type: object
                        scaleIO:
                          properties:
                            fsType:
                              default: xfs
                              type: string
                            gateway:
                              type: string
                            protectionDomain:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            sslEnabled:
                              type: boolean
                            storageMode:
                              default: ThinProvisioned
                              type: string
                            storagePool:
                              type: string
                            system:
                              type: string
                            volumeName:
                              type: string
                          required:
                          - gateway
                          - secretRef
                          - system
                          type: object
                        secret:
                          properties:
                            defaultMode:
                              format: int32
                              type: integer
                            items:
                              items:
                                properties:
                                  key:
                                    type: string
                                  mode:
                                    format: int32
                                    type: integer
                                  path:
                                    type: string
                                required:
                                - key
                                - path
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            optional:
                              type: boolean
                            secretName:
                              type: string
                          type: object
                        storageos:
                          properties:
                            fsType:
                              type: string
                            readOnly:
                              type: boolean
                            secretRef:
                              properties:
                                name:
                                  default: ''
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                            volumeName:
                              type: string
                            volumeNamespace:
                              type: string
                          type: object
                        vsphereVolume:
                          properties:
                            fsType:
                              type: string
                            storagePolicyID:
                              type: string
                            storagePolicyName:
                              type: string
                            volumePath:
                              type: string
                          required:
                          - volumePath
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                type: object
              templates:
                description: 'Templates is a list of workflow templates used in a workflow

                  MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                items:
                  description: Template is a reusable and composable unit of execution in a workflow
                  properties:
                    activeDeadlineSeconds:
                      anyOf:
                      - type: integer
                      - type: string
                      description: 'Optional duration in seconds relative to the StartTime that the pod may be active on a node

                        before the system actively tries to terminate the pod; value must be positive integer

                        This field is only applicable to container and script templates.'
                      x-kubernetes-int-or-string: true
                    affinity:
                      description: 'Affinity sets the pod''s scheduling constraints

                        Overrides the affinity set at the workflow level (if any)'
                      properties:
                        nodeAffinity:
                          description: Describes node affinity scheduling rules for the pod.
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node matches the corresponding matchExpressions; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: 'An empty preferred scheduling term matches all objects with implicit weight 0

                                  (i.e. it''s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).'
                                properties:
                                  preference:
                                    description: A node selector term, associated with the corresponding weight.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements by node's labels.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        description: A list of node selector requirements by node's fields.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  weight:
                                    description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
                                    format: int32
                                    type: integer
                                required:
                                - preference
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to an update), the system

                                may or may not try to eventually evict the pod from its node.'
                              properties:
                                nodeSelectorTerms:
                                  description: Required. A list of node selector terms. The terms are ORed.
                                  items:
                                    description: 'A null or empty node selector term matches no objects. The requirements of

                                      them are ANDed.

                                      The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.'
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements by node's labels.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchFields:
                                        description: A list of node selector requirements by node's fields.
                                        items:
                                          description: 'A node selector requirement is a selector that contains values, a key, and an operator

                                            that relates the key and values.'
                                          properties:
                                            key:
                                              description: The label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'Represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.'
                                              type: string
                                            values:
                                              description: 'An array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. If the operator is Gt or Lt, the values

                                                array must have a single element, which will be interpreted as an integer.

                                                This array is replaced during a strategic merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  type: array
                                  x-kubernetes-list-type: atomic
                              required:
                              - nodeSelectorTerms
                              type: object
                              x-kubernetes-map-type: atomic
                          type: object
                        podAffinity:
                          description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: 'A label query over a set of resources, in this case pods.

                                          If it''s null, this PodAffinityTerm matches with no Pods.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                          Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                          Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        description: 'A label query over the set of namespaces that the term applies to.

                                          The term is applied to the union of the namespaces selected by this field

                                          and the ones listed in the namespaces field.

                                          null selector and null or empty namespaces list means "this pod''s namespace".

                                          An empty selector ({}) matches all namespaces.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        description: 'namespaces specifies a static list of namespace names that the term applies to.

                                          The term is applied to the union of the namespaces listed in this field

                                          and the ones selected by namespaceSelector.

                                          null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                          the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                          whose value of the label with key topologyKey matches that of any node on which any of the

                                          selected pods is running.

                                          Empty topologyKey is not allowed.'
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: 'weight associated with matching the corresponding podAffinityTerm,

                                      in the range 1-100.'
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to a pod label update), the

                                system may or may not try to eventually evict the pod from its node.

                                When there are multiple elements, the lists of nodes corresponding to each

                                podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                              items:
                                description: 'Defines a set of pods (namely those matching the labelSelector

                                  relative to the given namespace(s)) that this pod should be

                                  co-located (affinity) or not co-located (anti-affinity) with,

                                  where co-located is defined as running on a node whose value of

                                  the label with key <topologyKey> matches that of any node on which

                                  a pod of the set of pods is running'
                                properties:
                                  labelSelector:
                                    description: 'A label query over a set of resources, in this case pods.

                                      If it''s null, this PodAffinityTerm matches with no Pods.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                      Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                      Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    description: 'A label query over the set of namespaces that the term applies to.

                                      The term is applied to the union of the namespaces selected by this field

                                      and the ones listed in the namespaces field.

                                      null selector and null or empty namespaces list means "this pod''s namespace".

                                      An empty selector ({}) matches all namespaces.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    description: 'namespaces specifies a static list of namespace names that the term applies to.

                                      The term is applied to the union of the namespaces listed in this field

                                      and the ones selected by namespaceSelector.

                                      null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                      the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                      whose value of the label with key topologyKey matches that of any node on which any of the

                                      selected pods is running.

                                      Empty topologyKey is not allowed.'
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                        podAntiAffinity:
                          description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: 'The scheduler will prefer to schedule pods to nodes that satisfy

                                the anti-affinity expressions specified by this field, but it may choose

                                a node that violates one or more of the expressions. The node that is

                                most preferred is the one with the greatest sum of weights, i.e.

                                for each node that meets all of the scheduling requirements (resource

                                request, requiredDuringScheduling anti-affinity expressions, etc.),

                                compute a sum by iterating through the elements of this field and adding

                                "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the

                                node(s) with the highest sum are the most preferred.'
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: 'A label query over a set of resources, in this case pods.

                                          If it''s null, this PodAffinityTerm matches with no Pods.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      matchLabelKeys:
                                        description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                          Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      mismatchLabelKeys:
                                        description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                          be taken into consideration. The keys are used to lookup values from the

                                          incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                          to select the group of existing pods which pods will be taken into consideration

                                          for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                          pod labels will be ignored. The default value is empty.

                                          The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                          Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      namespaceSelector:
                                        description: 'A label query over the set of namespaces that the term applies to.

                                          The term is applied to the union of the namespaces selected by this field

                                          and the ones listed in the namespaces field.

                                          null selector and null or empty namespaces list means "this pod''s namespace".

                                          An empty selector ({}) matches all namespaces.'
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      namespaces:
                                        description: 'namespaces specifies a static list of namespace names that the term applies to.

                                          The term is applied to the union of the namespaces listed in this field

                                          and the ones selected by namespaceSelector.

                                          null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      topologyKey:
                                        description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                          the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                          whose value of the label with key topologyKey matches that of any node on which any of the

                                          selected pods is running.

                                          Empty topologyKey is not allowed.'
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: 'weight associated with matching the corresponding podAffinityTerm,

                                      in the range 1-100.'
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: 'If the anti-affinity requirements specified by this field are not met at

                                scheduling time, the pod will not be scheduled onto the node.

                                If the anti-affinity requirements specified by this field cease to be met

                                at some point during pod execution (e.g. due to a pod label update), the

                                system may or may not try to eventually evict the pod from its node.

                                When there are multiple elements, the lists of nodes corresponding to each

                                podAffinityTerm are intersected, i.e. all terms must be satisfied.'
                              items:
                                description: 'Defines a set of pods (namely those matching the labelSelector

                                  relative to the given namespace(s)) that this pod should be

                                  co-located (affinity) or not co-located (anti-affinity) with,

                                  where co-located is defined as running on a node whose value of

                                  the label with key <topologyKey> matches that of any node on which

                                  a pod of the set of pods is running'
                                properties:
                                  labelSelector:
                                    description: 'A label query over a set of resources, in this case pods.

                                      If it''s null, this PodAffinityTerm matches with no Pods.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  matchLabelKeys:
                                    description: 'MatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both matchLabelKeys and labelSelector.

                                      Also, matchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  mismatchLabelKeys:
                                    description: 'MismatchLabelKeys is a set of pod label keys to select which pods will

                                      be taken into consideration. The keys are used to lookup values from the

                                      incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`

                                      to select the group of existing pods which pods will be taken into consideration

                                      for the incoming pod''s pod (anti) affinity. Keys that don''t exist in the incoming

                                      pod labels will be ignored. The default value is empty.

                                      The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.

                                      Also, mismatchLabelKeys cannot be set when labelSelector isn''t set.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  namespaceSelector:
                                    description: 'A label query over the set of namespaces that the term applies to.

                                      The term is applied to the union of the namespaces selected by this field

                                      and the ones listed in the namespaces field.

                                      null selector and null or empty namespaces list means "this pod''s namespace".

                                      An empty selector ({}) matches all namespaces.'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  namespaces:
                                    description: 'namespaces specifies a static list of namespace names that the term applies to.

                                      The term is applied to the union of the namespaces listed in this field

                                      and the ones selected by namespaceSelector.

                                      null or empty namespaces list and null namespaceSelector means "this pod''s namespace".'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  topologyKey:
                                    description: 'This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching

                                      the labelSelector in the specified namespaces, where co-located is defined as running on a node

                                      whose value of the label with key topologyKey matches that of any node on which any of the

                                      selected pods is running.

                                      Empty topologyKey is not allowed.'
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                          type: object
                      type: object
                    annotations:
                      additionalProperties:
                        type: string
                      description: Annotations is a list of annotations to add to the template at runtime
                      type: object
                    archiveLocation:
                      description: 'Location in which all files related to the step will be stored (logs, artifacts, etc...).

                        Can be overridden by individual items in Outputs. If omitted, will use the default

                        artifact repository location configured in the controller, appended with the

                        <workflowname>/<nodename> in the key.'
                      properties:
                        archiveLogs:
                          description: ArchiveLogs indicates if the container logs should be archived
                          type: boolean
                        artifactory:
                          description: Artifactory contains artifactory artifact location details
                          properties:
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            url:
                              description: URL of the artifact
                              type: string
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - url
                          type: object
                        azure:
                          description: Azure contains Azure Storage artifact location details
                          properties:
                            accountKeySecret:
                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            blob:
                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                              type: string
                            container:
                              description: Container is the container where resources will be stored
                              type: string
                            endpoint:
                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - blob
                          - container
                          - endpoint
                          type: object
                        gcs:
                          description: GCS contains GCS artifact location details
                          properties:
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            serviceAccountKeySecret:
                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - key
                          type: object
                        git:
                          description: Git contains git artifact location details
                          properties:
                            branch:
                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                              type: string
                            depth:
                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                number of commits from the branch tip'
                              format: int64
                              type: integer
                            disableSubmodules:
                              description: DisableSubmodules disables submodules during git clone
                              type: boolean
                            fetch:
                              description: Fetch specifies a number of refs that should be fetched before checkout
                              items:
                                type: string
                              type: array
                            insecureIgnoreHostKey:
                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                              type: boolean
                            insecureSkipTLS:
                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                              type: boolean
                            passwordSecret:
                              description: PasswordSecret is the secret selector to the repository password
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            repo:
                              description: Repo is the git repository
                              type: string
                            revision:
                              description: Revision is the git commit, tag, branch to checkout
                              type: string
                            singleBranch:
                              description: SingleBranch enables single branch clone, using the `branch` parameter
                              type: boolean
                            sshPrivateKeySecret:
                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            usernameSecret:
                              description: UsernameSecret is the secret selector to the repository username
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - repo
                          type: object
                        hdfs:
                          description: HDFS contains HDFS artifact location details
                          properties:
                            addresses:
                              description: Addresses is accessible addresses of HDFS name nodes
                              items:
                                type: string
                              type: array
                            dataTransferProtection:
                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                              type: string
                            force:
                              description: Force copies a file forcibly even if it exists
                              type: boolean
                            hdfsUser:
                              description: 'HDFSUser is the user to access HDFS file system.

                                It is ignored if either ccache or keytab is used.'
                              type: string
                            krbCCacheSecret:
                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbConfigConfigMap:
                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                It must be set if either ccache or keytab is used.'
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbKeytabSecret:
                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                Either ccache or keytab can be set to use Kerberos.'
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            krbRealm:
                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            krbServicePrincipalName:
                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                It must be set if either ccache or keytab is used.'
                              type: string
                            krbUsername:
                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                It must be set if keytab is used.'
                              type: string
                            path:
                              description: Path is a file path in HDFS
                              type: string
                          required:
                          - path
                          type: object
                        http:
                          description: HTTP contains HTTP artifact location details
                          properties:
                            auth:
                              description: Auth contains information for client authentication
                              properties:
                                basicAuth:
                                  description: BasicAuth describes the secret selectors required for basic authentication
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                clientCert:
                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                  properties:
                                    clientCertSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientKeySecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                oauth2:
                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                  properties:
                                    clientIDSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    clientSecretSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    endpointParams:
                                      items:
                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                        properties:
                                          key:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      type: array
                                    scopes:
                                      items:
                                        type: string
                                      type: array
                                    tokenURLSecret:
                                      description: SecretKeySelector selects a key of a Secret.
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              type: object
                            headers:
                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                              items:
                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                properties:
                                  name:
                                    description: Name is the header name
                                    type: string
                                  value:
                                    description: Value is the literal value to use for the header
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            url:
                              description: URL of the artifact
                              type: string
                          required:
                          - url
                          type: object
                        oss:
                          description: OSS contains OSS artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                              type: boolean
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            key:
                              description: Key is the path in the bucket where the artifact resides
                              type: string
                            lifecycleRule:
                              description: LifecycleRule specifies how to manage bucket's lifecycle
                              properties:
                                markDeletionAfterDays:
                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                  format: int32
                                  type: integer
                                markInfrequentAccessAfterDays:
                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                  format: int32
                                  type: integer
                              type: object
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            securityToken:
                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                              type: string
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          required:
                          - key
                          type: object
                        plugin:
                          description: Plugin contains plugin artifact location details
                          properties:
                            configuration:
                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                              type: string
                            connectionTimeoutSeconds:
                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                              format: int32
                              type: integer
                            key:
                              description: Key is the path in the artifact repository where the artifact resides
                              type: string
                            name:
                              description: Name is the name of the artifact driver plugin
                              type: string
                          required:
                          - key
                          type: object
                        raw:
                          description: Raw contains raw artifact location details
                          properties:
                            data:
                              description: Data is the string contents of the artifact
                              type: string
                          required:
                          - data
                          type: object
                        s3:
                          description: S3 contains S3 artifact location details
                          properties:
                            accessKeySecret:
                              description: AccessKeySecret is the secret selector to the bucket's access key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            bucket:
                              description: Bucket is the name of the bucket
                              type: string
                            caSecret:
                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            createBucketIfNotPresent:
                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                              properties:
                                objectLocking:
                                  description: ObjectLocking Enable object locking
                                  type: boolean
                              type: object
                            encryptionOptions:
                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                              properties:
                                enableEncryption:
                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                  type: boolean
                                kmsEncryptionContext:
                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                  type: string
                                kmsKeyId:
                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                  type: string
                                serverSideCustomerKeySecret:
                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                  properties:
                                    key:
                                      description: The key of the secret to select from.  Must be a valid secret key.
                                      type: string
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret or its key must be defined
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            endpoint:
                              description: Endpoint is the hostname of the bucket endpoint
                              type: string
                            insecure:
                              description: Insecure will connect to the service with TLS
                              type: boolean
                            key:
                              description: Key is the key in the bucket where the artifact resides
                              type: string
                            region:
                              description: Region contains the optional bucket region
                              type: string
                            roleARN:
                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                              type: string
                            secretKeySecret:
                              description: SecretKeySecret is the secret selector to the bucket's secret key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            sessionTokenSecret:
                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must be a valid secret key.
                                  type: string
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                              x-kubernetes-map-type: atomic
                            useSDKCreds:
                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                              type: boolean
                          type: object
                      type: object
                      x-kubernetes-validations:
                      - message: at most one artifact location can be specified
                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                    automountServiceAccountToken:
                      description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in pods.

                        ServiceAccountName of ExecutorConfig must be specified if this value is false.'
                      type: boolean
                    container:
                      description: Container is the main container image to run in the pod
                      properties:
                        args:
                          description: 'Arguments to the entrypoint.

                            The container image''s CMD is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          description: 'Entrypoint array. Not executed within a shell.

                            The container image''s ENTRYPOINT is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          description: 'List of environment variables to set in the container.

                            Cannot be updated.'
                          items:
                            description: EnvVar represents an environment variable present in a Container.
                            properties:
                              name:
                                description: Name of the environment variable. Must be a C_IDENTIFIER.
                                type: string
                              value:
                                description: 'Variable references $(VAR_NAME) are expanded

                                  using the previously defined environment variables in the container and

                                  any service environment variables. If a variable cannot be resolved,

                                  the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                  "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                  Escaped references will never be expanded, regardless of whether the variable

                                  exists or not.

                                  Defaults to "".'
                                type: string
                              valueFrom:
                                description: Source for the environment variable's value. Cannot be used if value is not empty.
                                properties:
                                  configMapKeyRef:
                                    description: Selects a key of a ConfigMap.
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                      spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                    properties:
                                      apiVersion:
                                        description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                        type: string
                                      fieldPath:
                                        description: Path of the field to select in the specified API version.
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    description: 'Selects a resource of the container: only resources limits and requests

                                      (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                    properties:
                                      containerName:
                                        description: 'Container name: required for volumes, optional for env vars'
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Specifies the output format of the exposed resources, defaults to "1"
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        description: 'Required: resource to select'
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    description: Selects a key of a secret in the pod's namespace
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          description: 'List of sources to populate environment variables in the container.

                            The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                            will be reported as an event when the container is starting. When a key exists in multiple

                            sources, the value associated with the last source will take precedence.

                            Values defined by an Env with a duplicate key will take precedence.

                            Cannot be updated.'
                          items:
                            description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                            properties:
                              configMapRef:
                                description: The ConfigMap to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                type: string
                              secretRef:
                                description: The Secret to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the Secret must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          description: 'Container image name.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                        imagePullPolicy:
                          description: 'Image pull policy.

                            One of Always, Never, IfNotPresent.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                          type: string
                        lifecycle:
                          description: 'Actions that the management system should take in response to container lifecycle events.

                            Cannot be updated.'
                          properties:
                            postStart:
                              description: 'PostStart is called immediately after a container is created. If the handler fails,

                                the container is terminated and restarted according to its restart policy.

                                Other management of the container blocks until the hook completes.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              description: 'PreStop is called immediately before a container is terminated due to an

                                API request or management event such as liveness/startup probe failure,

                                preemption, resource contention, etc. The handler is not called if the

                                container crashes or exits. The Pod''s termination grace period countdown begins before the

                                PreStop hook is executed. Regardless of the outcome of the handler, the

                                container will eventually terminate within the Pod''s termination grace

                                period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                or until the termination grace period is reached.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                If not specified, the default is defined by the container runtime in use.

                                StopSignal can only be set for Pods with a non-empty .spec.os.name'
                              type: string
                          type: object
                        livenessProbe:
                          description: 'Periodic probe of container liveness.

                            Container will be restarted if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        name:
                          description: 'Name of the container specified as a DNS_LABEL.

                            Each container in a pod must have a unique name (DNS_LABEL).

                            Cannot be updated.'
                          type: string
                        ports:
                          description: 'List of ports to expose from the container. Not specifying a port here

                            DOES NOT prevent that port from being exposed. Any port which is

                            listening on the default "0.0.0.0" address inside a container will be

                            accessible from the network.

                            Modifying this array with strategic merge patch may corrupt the data.

                            For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                            Cannot be updated.'
                          items:
                            description: ContainerPort represents a network port in a single container.
                            properties:
                              containerPort:
                                description: 'Number of port to expose on the pod''s IP address.

                                  This must be a valid port number, 0 < x < 65536.'
                                format: int32
                                type: integer
                              hostIP:
                                description: What host IP to bind the external port to.
                                type: string
                              hostPort:
                                description: 'Number of port to expose on the host.

                                  If specified, this must be a valid port number, 0 < x < 65536.

                                  If HostNetwork is specified, this must match ContainerPort.

                                  Most containers do not need this.'
                                format: int32
                                type: integer
                              name:
                                description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                  named port in a pod must have a unique name. Name for the port that can be

                                  referred to by services.'
                                type: string
                              protocol:
                                default: TCP
                                description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                  Defaults to "TCP".'
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          description: 'Periodic probe of container service readiness.

                            Container will be removed from service endpoints if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          description: Resources resize policy for the container.
                          items:
                            description: ContainerResizePolicy represents resource resize policy for the container.
                            properties:
                              resourceName:
                                description: 'Name of the resource to which this resource resize policy applies.

                                  Supported values: cpu, memory.'
                                type: string
                              restartPolicy:
                                description: 'Restart policy to apply when specified resource is resized.

                                  If not specified, it defaults to NotRequired.'
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          description: 'Compute Resources required by this container.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                          properties:
                            claims:
                              description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                that are used by this container.


                                This is an alpha field and requires enabling the

                                DynamicResourceAllocation feature gate.


                                This field is immutable. It can only be set for containers.'
                              items:
                                description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                properties:
                                  name:
                                    description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                      the Pod where this field is used. It makes that resource available

                                      inside a container.'
                                    type: string
                                  request:
                                    description: 'Request is the name chosen for a request in the referenced claim.

                                      If empty, everything from the claim is made available, otherwise

                                      only the result of this request.'
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        restartPolicy:
                          description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                            This field may only be set for init containers, and the only allowed value is "Always".

                            For non-init containers or when this field is not specified,

                            the restart behavior is defined by the Pod''s restart policy and the container type.

                            Setting the RestartPolicy as "Always" for the init container will have the following effect:

                            this init container will be continually restarted on

                            exit until all regular containers have terminated. Once all regular

                            containers have completed, all init containers with restartPolicy "Always"

                            will be shut down. This lifecycle differs from normal init containers and

                            is often referred to as a "sidecar" container. Although this init

                            container still starts in the init container sequence, it does not wait

                            for the container to complete before proceeding to the next init

                            container. Instead, the next init container starts immediately after this

                            init container is started, or after any startupProbe has successfully

                            completed.'
                          type: string
                        securityContext:
                          description: 'SecurityContext defines the security options the container should be run with.

                            If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                            More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                          properties:
                            allowPrivilegeEscalation:
                              description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                privileges than its parent process. This bool directly controls if

                                the no_new_privs flag will be set on the container process.

                                AllowPrivilegeEscalation is true always when the container is:

                                1) run as Privileged

                                2) has CAP_SYS_ADMIN

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            appArmorProfile:
                              description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                overrides the pod''s appArmorProfile.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must match the loaded name of the profile.

                                    Must be set if and only if type is "Localhost".'
                                  type: string
                                type:
                                  description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              description: 'The capabilities to add/drop when running containers.

                                Defaults to the default set of capabilities granted by the container runtime.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                add:
                                  description: Added capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  description: Removed capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              description: 'Run container in privileged mode.

                                Processes in privileged containers are essentially equivalent to root on the host.

                                Defaults to false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            procMount:
                              description: 'procMount denotes the type of proc mount to use for the containers.

                                The default value is Default which uses the container runtime defaults for

                                readonly paths and masked paths.

                                This requires the ProcMountType feature flag to be enabled.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            readOnlyRootFilesystem:
                              description: 'Whether this container has a read-only root filesystem.

                                Default is false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            runAsGroup:
                              description: 'The GID to run the entrypoint of the container process.

                                Uses runtime default if unset.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            runAsNonRoot:
                              description: 'Indicates that the container must run as a non-root user.

                                If true, the Kubelet will validate the image at runtime to ensure that it

                                does not run as UID 0 (root) and fail to start the container if it does.

                                If unset or false, no such validation will be performed.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: boolean
                            runAsUser:
                              description: 'The UID to run the entrypoint of the container process.

                                Defaults to user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            seLinuxOptions:
                              description: 'The SELinux context to be applied to the container.

                                If unspecified, the container runtime will allocate a random SELinux context for each

                                container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                level:
                                  description: Level is SELinux level label that applies to the container.
                                  type: string
                                role:
                                  description: Role is a SELinux role label that applies to the container.
                                  type: string
                                type:
                                  description: Type is a SELinux type label that applies to the container.
                                  type: string
                                user:
                                  description: User is a SELinux user label that applies to the container.
                                  type: string
                              type: object
                            seccompProfile:
                              description: 'The seccomp options to use by this container. If seccomp options are

                                provided at both the pod & container level, the container options

                                override the pod options.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                    Must be set if type is "Localhost". Must NOT be set for any other type.'
                                  type: string
                                type:
                                  description: 'type indicates which kind of seccomp profile will be applied.

                                    Valid options are:


                                    Localhost - a profile defined in a file on the node should be used.

                                    RuntimeDefault - the container runtime default profile should be used.

                                    Unconfined - no profile should be applied.'
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              description: 'The Windows specific settings applied to all containers.

                                If unspecified, the options from the PodSecurityContext will be used.

                                If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is linux.'
                              properties:
                                gmsaCredentialSpec:
                                  description: 'GMSACredentialSpec is where the GMSA admission webhook

                                    (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                    GMSA credential spec named by the GMSACredentialSpecName field.'
                                  type: string
                                gmsaCredentialSpecName:
                                  description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                  type: string
                                hostProcess:
                                  description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                    All of a Pod''s containers must have the same effective HostProcess value

                                    (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                    In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                  type: boolean
                                runAsUserName:
                                  description: 'The UserName in Windows to run the entrypoint of the container process.

                                    Defaults to the user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext. If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: string
                              type: object
                          type: object
                        startupProbe:
                          description: 'StartupProbe indicates that the Pod has successfully initialized.

                            If specified, no other probes are executed until this completes successfully.

                            If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                            This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                            when it might take a long time to load data or warm a cache, than during steady-state operation.

                            This cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                            is not set, reads from stdin in the container will always result in EOF.

                            Default is false.'
                          type: boolean
                        stdinOnce:
                          description: 'Whether the container runtime should close the stdin channel after it has been opened by

                            a single attach. When stdin is true the stdin stream will remain open across multiple attach

                            sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                            first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                            at which time stdin is closed and remains closed until the container is restarted. If this

                            flag is false, a container processes that reads from stdin will never receive an EOF.

                            Default is false'
                          type: boolean
                        terminationMessagePath:
                          description: 'Optional: Path at which the file to which the container''s termination message

                            will be written is mounted into the container''s filesystem.

                            Message written is intended to be brief final status, such as an assertion failure message.

                            Will be truncated by the node if greater than 4096 bytes. The total message length across

                            all containers will be limited to 12kb.

                            Defaults to /dev/termination-log.

                            Cannot be updated.'
                          type: string
                        terminationMessagePolicy:
                          description: 'Indicate how the termination message should be populated. File will use the contents of

                            terminationMessagePath to populate the container status message on both success and failure.

                            FallbackToLogsOnError will use the last chunk of container log output if the termination

                            message file is empty and the container exited with an error.

                            The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                            Defaults to File.

                            Cannot be updated.'
                          type: string
                        tty:
                          description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                            Default is false.'
                          type: boolean
                        volumeDevices:
                          description: volumeDevices is the list of block devices to be used by the container.
                          items:
                            description: volumeDevice describes a mapping of a raw block device within a container.
                            properties:
                              devicePath:
                                description: devicePath is the path inside of the container that the device will be mapped to.
                                type: string
                              name:
                                description: name must match the name of a persistentVolumeClaim in the pod
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          description: 'Pod volumes to mount into the container''s filesystem.

                            Cannot be updated.'
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          description: 'Container''s working directory.

                            If not specified, the container runtime''s default will be used, which

                            might be configured in the container image.

                            Cannot be updated.'
                          type: string
                      type: object
                    containerSet:
                      description: ContainerSet groups multiple containers within a single pod.
                      properties:
                        containers:
                          items:
                            properties:
                              args:
                                description: 'Arguments to the entrypoint.

                                  The container image''s CMD is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              command:
                                description: 'Entrypoint array. Not executed within a shell.

                                  The container image''s ENTRYPOINT is used if this is not provided.

                                  Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                                  cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                                  produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                                  of whether the variable exists or not. Cannot be updated.

                                  More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              dependencies:
                                items:
                                  type: string
                                type: array
                              env:
                                description: 'List of environment variables to set in the container.

                                  Cannot be updated.'
                                items:
                                  description: EnvVar represents an environment variable present in a Container.
                                  properties:
                                    name:
                                      description: Name of the environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    value:
                                      description: 'Variable references $(VAR_NAME) are expanded

                                        using the previously defined environment variables in the container and

                                        any service environment variables. If a variable cannot be resolved,

                                        the reference in the input string will be unchanged. Double $$ are reduced

                                        to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                        "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                        Escaped references will never be expanded, regardless of whether the variable

                                        exists or not.

                                        Defaults to "".'
                                      type: string
                                    valueFrom:
                                      description: Source for the environment variable's value. Cannot be used if value is not empty.
                                      properties:
                                        configMapKeyRef:
                                          description: Selects a key of a ConfigMap.
                                          properties:
                                            key:
                                              description: The key to select.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the ConfigMap or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        fieldRef:
                                          description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                            spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        secretKeyRef:
                                          description: Selects a key of a secret in the pod's namespace
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              envFrom:
                                description: 'List of sources to populate environment variables in the container.

                                  The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                                  will be reported as an event when the container is starting. When a key exists in multiple

                                  sources, the value associated with the last source will take precedence.

                                  Values defined by an Env with a duplicate key will take precedence.

                                  Cannot be updated.'
                                items:
                                  description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                                  properties:
                                    configMapRef:
                                      description: The ConfigMap to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    prefix:
                                      description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                      type: string
                                    secretRef:
                                      description: The Secret to select from
                                      properties:
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              image:
                                description: 'Container image name.

                                  More info: https://kubernetes.io/docs/concepts/containers/images

                                  This field is optional to allow higher level config management to default or override

                                  container images in workload controllers like Deployments and StatefulSets.'
                                type: string
                              imagePullPolicy:
                                description: 'Image pull policy.

                                  One of Always, Never, IfNotPresent.

                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                                type: string
                              lifecycle:
                                description: 'Actions that the management system should take in response to container lifecycle events.

                                  Cannot be updated.'
                                properties:
                                  postStart:
                                    description: 'PostStart is called immediately after a container is created. If the handler fails,

                                      the container is terminated and restarted according to its restart policy.

                                      Other management of the container blocks until the hook completes.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  preStop:
                                    description: 'PreStop is called immediately before a container is terminated due to an

                                      API request or management event such as liveness/startup probe failure,

                                      preemption, resource contention, etc. The handler is not called if the

                                      container crashes or exits. The Pod''s termination grace period countdown begins before the

                                      PreStop hook is executed. Regardless of the outcome of the handler, the

                                      container will eventually terminate within the Pod''s termination grace

                                      period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                      or until the termination grace period is reached.

                                      More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                    properties:
                                      exec:
                                        description: Exec specifies a command to execute in the container.
                                        properties:
                                          command:
                                            description: 'Command is the command line to execute inside the container, the working directory for the

                                              command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                              not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                              a shell, you need to explicitly call out to that shell.

                                              Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        type: object
                                      httpGet:
                                        description: HTTPGet specifies an HTTP GET request to perform.
                                        properties:
                                          host:
                                            description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                              "Host" in httpHeaders instead.'
                                            type: string
                                          httpHeaders:
                                            description: Custom headers to set in the request. HTTP allows repeated headers.
                                            items:
                                              description: HTTPHeader describes a custom header to be used in HTTP probes
                                              properties:
                                                name:
                                                  description: 'The header field name.

                                                    This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                                  type: string
                                                value:
                                                  description: The header field value
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          path:
                                            description: Path to access on the HTTP server.
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Name or number of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                          scheme:
                                            description: 'Scheme to use for connecting to the host.

                                              Defaults to HTTP.'
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      sleep:
                                        description: Sleep represents a duration that the container should sleep.
                                        properties:
                                          seconds:
                                            description: Seconds is the number of seconds to sleep.
                                            format: int64
                                            type: integer
                                        required:
                                        - seconds
                                        type: object
                                      tcpSocket:
                                        description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                          for backward compatibility. There is no validation of this field and

                                          lifecycle hooks will fail at runtime when it is specified.'
                                        properties:
                                          host:
                                            description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                            type: string
                                          port:
                                            anyOf:
                                            - type: integer
                                            - type: string
                                            description: 'Number or name of the port to access on the container.

                                              Number must be in the range 1 to 65535.

                                              Name must be an IANA_SVC_NAME.'
                                            x-kubernetes-int-or-string: true
                                        required:
                                        - port
                                        type: object
                                    type: object
                                  stopSignal:
                                    description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                      If not specified, the default is defined by the container runtime in use.

                                      StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                    type: string
                                type: object
                              livenessProbe:
                                description: 'Periodic probe of container liveness.

                                  Container will be restarted if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              name:
                                description: 'Name of the container specified as a DNS_LABEL.

                                  Each container in a pod must have a unique name (DNS_LABEL).

                                  Cannot be updated.'
                                type: string
                              ports:
                                description: 'List of ports to expose from the container. Not specifying a port here

                                  DOES NOT prevent that port from being exposed. Any port which is

                                  listening on the default "0.0.0.0" address inside a container will be

                                  accessible from the network.

                                  Modifying this array with strategic merge patch may corrupt the data.

                                  For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                                  Cannot be updated.'
                                items:
                                  description: ContainerPort represents a network port in a single container.
                                  properties:
                                    containerPort:
                                      description: 'Number of port to expose on the pod''s IP address.

                                        This must be a valid port number, 0 < x < 65536.'
                                      format: int32
                                      type: integer
                                    hostIP:
                                      description: What host IP to bind the external port to.
                                      type: string
                                    hostPort:
                                      description: 'Number of port to expose on the host.

                                        If specified, this must be a valid port number, 0 < x < 65536.

                                        If HostNetwork is specified, this must match ContainerPort.

                                        Most containers do not need this.'
                                      format: int32
                                      type: integer
                                    name:
                                      description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                        named port in a pod must have a unique name. Name for the port that can be

                                        referred to by services.'
                                      type: string
                                    protocol:
                                      default: TCP
                                      description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                        Defaults to "TCP".'
                                      type: string
                                  required:
                                  - containerPort
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - containerPort
                                - protocol
                                x-kubernetes-list-type: map
                              readinessProbe:
                                description: 'Periodic probe of container service readiness.

                                  Container will be removed from service endpoints if the probe fails.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              resizePolicy:
                                description: Resources resize policy for the container.
                                items:
                                  description: ContainerResizePolicy represents resource resize policy for the container.
                                  properties:
                                    resourceName:
                                      description: 'Name of the resource to which this resource resize policy applies.

                                        Supported values: cpu, memory.'
                                      type: string
                                    restartPolicy:
                                      description: 'Restart policy to apply when specified resource is resized.

                                        If not specified, it defaults to NotRequired.'
                                      type: string
                                  required:
                                  - resourceName
                                  - restartPolicy
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              resources:
                                description: 'Compute Resources required by this container.

                                  Cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                properties:
                                  claims:
                                    description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                      that are used by this container.


                                      This is an alpha field and requires enabling the

                                      DynamicResourceAllocation feature gate.


                                      This field is immutable. It can only be set for containers.'
                                    items:
                                      description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                      properties:
                                        name:
                                          description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                            the Pod where this field is used. It makes that resource available

                                            inside a container.'
                                          type: string
                                        request:
                                          description: 'Request is the name chosen for a request in the referenced claim.

                                            If empty, everything from the claim is made available, otherwise

                                            only the result of this request.'
                                          type: string
                                      required:
                                      - name
                                      type: object
                                    type: array
                                    x-kubernetes-list-map-keys:
                                    - name
                                    x-kubernetes-list-type: map
                                  limits:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Limits describes the maximum amount of compute resources allowed.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                  requests:
                                    additionalProperties:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    description: 'Requests describes the minimum amount of compute resources required.

                                      If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                      otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                      More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                    type: object
                                type: object
                              restartPolicy:
                                description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                                  This field may only be set for init containers, and the only allowed value is "Always".

                                  For non-init containers or when this field is not specified,

                                  the restart behavior is defined by the Pod''s restart policy and the container type.

                                  Setting the RestartPolicy as "Always" for the init container will have the following effect:

                                  this init container will be continually restarted on

                                  exit until all regular containers have terminated. Once all regular

                                  containers have completed, all init containers with restartPolicy "Always"

                                  will be shut down. This lifecycle differs from normal init containers and

                                  is often referred to as a "sidecar" container. Although this init

                                  container still starts in the init container sequence, it does not wait

                                  for the container to complete before proceeding to the next init

                                  container. Instead, the next init container starts immediately after this

                                  init container is started, or after any startupProbe has successfully

                                  completed.'
                                type: string
                              securityContext:
                                description: 'SecurityContext defines the security options the container should be run with.

                                  If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                                  More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                                properties:
                                  allowPrivilegeEscalation:
                                    description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                      privileges than its parent process. This bool directly controls if

                                      the no_new_privs flag will be set on the container process.

                                      AllowPrivilegeEscalation is true always when the container is:

                                      1) run as Privileged

                                      2) has CAP_SYS_ADMIN

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  appArmorProfile:
                                    description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                      overrides the pod''s appArmorProfile.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must match the loaded name of the profile.

                                          Must be set if and only if type is "Localhost".'
                                        type: string
                                      type:
                                        description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  capabilities:
                                    description: 'The capabilities to add/drop when running containers.

                                      Defaults to the default set of capabilities granted by the container runtime.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      add:
                                        description: Added capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      drop:
                                        description: Removed capabilities
                                        items:
                                          description: Capability represent POSIX capabilities type
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  privileged:
                                    description: 'Run container in privileged mode.

                                      Processes in privileged containers are essentially equivalent to root on the host.

                                      Defaults to false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  procMount:
                                    description: 'procMount denotes the type of proc mount to use for the containers.

                                      The default value is Default which uses the container runtime defaults for

                                      readonly paths and masked paths.

                                      This requires the ProcMountType feature flag to be enabled.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: string
                                  readOnlyRootFilesystem:
                                    description: 'Whether this container has a read-only root filesystem.

                                      Default is false.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    type: boolean
                                  runAsGroup:
                                    description: 'The GID to run the entrypoint of the container process.

                                      Uses runtime default if unset.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  runAsNonRoot:
                                    description: 'Indicates that the container must run as a non-root user.

                                      If true, the Kubelet will validate the image at runtime to ensure that it

                                      does not run as UID 0 (root) and fail to start the container if it does.

                                      If unset or false, no such validation will be performed.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: boolean
                                  runAsUser:
                                    description: 'The UID to run the entrypoint of the container process.

                                      Defaults to user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    format: int64
                                    type: integer
                                  seLinuxOptions:
                                    description: 'The SELinux context to be applied to the container.

                                      If unspecified, the container runtime will allocate a random SELinux context for each

                                      container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      level:
                                        description: Level is SELinux level label that applies to the container.
                                        type: string
                                      role:
                                        description: Role is a SELinux role label that applies to the container.
                                        type: string
                                      type:
                                        description: Type is a SELinux type label that applies to the container.
                                        type: string
                                      user:
                                        description: User is a SELinux user label that applies to the container.
                                        type: string
                                    type: object
                                  seccompProfile:
                                    description: 'The seccomp options to use by this container. If seccomp options are

                                      provided at both the pod & container level, the container options

                                      override the pod options.

                                      Note that this field cannot be set when spec.os.name is windows.'
                                    properties:
                                      localhostProfile:
                                        description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                          The profile must be preconfigured on the node to work.

                                          Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                          Must be set if type is "Localhost". Must NOT be set for any other type.'
                                        type: string
                                      type:
                                        description: 'type indicates which kind of seccomp profile will be applied.

                                          Valid options are:


                                          Localhost - a profile defined in a file on the node should be used.

                                          RuntimeDefault - the container runtime default profile should be used.

                                          Unconfined - no profile should be applied.'
                                        type: string
                                    required:
                                    - type
                                    type: object
                                  windowsOptions:
                                    description: 'The Windows specific settings applied to all containers.

                                      If unspecified, the options from the PodSecurityContext will be used.

                                      If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                      Note that this field cannot be set when spec.os.name is linux.'
                                    properties:
                                      gmsaCredentialSpec:
                                        description: 'GMSACredentialSpec is where the GMSA admission webhook

                                          (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                          GMSA credential spec named by the GMSACredentialSpecName field.'
                                        type: string
                                      gmsaCredentialSpecName:
                                        description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                        type: string
                                      hostProcess:
                                        description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                          All of a Pod''s containers must have the same effective HostProcess value

                                          (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                          In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                        type: boolean
                                      runAsUserName:
                                        description: 'The UserName in Windows to run the entrypoint of the container process.

                                          Defaults to the user specified in image metadata if unspecified.

                                          May also be set in PodSecurityContext. If set in both SecurityContext and

                                          PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                        type: string
                                    type: object
                                type: object
                              startupProbe:
                                description: 'StartupProbe indicates that the Pod has successfully initialized.

                                  If specified, no other probes are executed until this completes successfully.

                                  If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                                  This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                                  when it might take a long time to load data or warm a cache, than during steady-state operation.

                                  This cannot be updated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  failureThreshold:
                                    description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                      Defaults to 3. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  grpc:
                                    description: GRPC specifies a GRPC HealthCheckRequest.
                                    properties:
                                      port:
                                        description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                        format: int32
                                        type: integer
                                      service:
                                        default: ''
                                        description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                          (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                          If this is not specified, the default behavior is defined by gRPC.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container has started before liveness probes are initiated.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: 'How often (in seconds) to perform the probe.

                                      Default to 10 seconds. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                      Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: TCPSocket specifies a connection to a TCP port.
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  terminationGracePeriodSeconds:
                                    description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                      The grace period is the duration in seconds after the processes running in the pod are sent

                                      a termination signal and the time when the processes are forcibly halted with a kill signal.

                                      Set this value longer than the expected cleanup time for your process.

                                      If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                      value overrides the value provided by the pod spec.

                                      Value must be non-negative integer. The value zero indicates stop immediately via

                                      the kill signal (no opportunity to shut down).

                                      This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                      Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                    format: int64
                                    type: integer
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the probe times out.

                                      Defaults to 1 second. Minimum value is 1.

                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              stdin:
                                description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                                  is not set, reads from stdin in the container will always result in EOF.

                                  Default is false.'
                                type: boolean
                              stdinOnce:
                                description: 'Whether the container runtime should close the stdin channel after it has been opened by

                                  a single attach. When stdin is true the stdin stream will remain open across multiple attach

                                  sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                                  first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                                  at which time stdin is closed and remains closed until the container is restarted. If this

                                  flag is false, a container processes that reads from stdin will never receive an EOF.

                                  Default is false'
                                type: boolean
                              terminationMessagePath:
                                description: 'Optional: Path at which the file to which the container''s termination message

                                  will be written is mounted into the container''s filesystem.

                                  Message written is intended to be brief final status, such as an assertion failure message.

                                  Will be truncated by the node if greater than 4096 bytes. The total message length across

                                  all containers will be limited to 12kb.

                                  Defaults to /dev/termination-log.

                                  Cannot be updated.'
                                type: string
                              terminationMessagePolicy:
                                description: 'Indicate how the termination message should be populated. File will use the contents of

                                  terminationMessagePath to populate the container status message on both success and failure.

                                  FallbackToLogsOnError will use the last chunk of container log output if the termination

                                  message file is empty and the container exited with an error.

                                  The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                                  Defaults to File.

                                  Cannot be updated.'
                                type: string
                              tty:
                                description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                                  Default is false.'
                                type: boolean
                              volumeDevices:
                                description: volumeDevices is the list of block devices to be used by the container.
                                items:
                                  description: volumeDevice describes a mapping of a raw block device within a container.
                                  properties:
                                    devicePath:
                                      description: devicePath is the path inside of the container that the device will be mapped to.
                                      type: string
                                    name:
                                      description: name must match the name of a persistentVolumeClaim in the pod
                                      type: string
                                  required:
                                  - devicePath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - devicePath
                                x-kubernetes-list-type: map
                              volumeMounts:
                                description: 'Pod volumes to mount into the container''s filesystem.

                                  Cannot be updated.'
                                items:
                                  description: VolumeMount describes a mounting of a Volume within a container.
                                  properties:
                                    mountPath:
                                      description: 'Path within the container at which the volume should be mounted.  Must

                                        not contain '':''.'
                                      type: string
                                    mountPropagation:
                                      description: 'mountPropagation determines how mounts are propagated from the host

                                        to container and the other way around.

                                        When not set, MountPropagationNone is used.

                                        This field is beta in 1.10.

                                        When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                        (which defaults to None).'
                                      type: string
                                    name:
                                      description: This must match the Name of a Volume.
                                      type: string
                                    readOnly:
                                      description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                        Defaults to false.'
                                      type: boolean
                                    recursiveReadOnly:
                                      description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                        recursively.


                                        If ReadOnly is false, this field has no meaning and must be unspecified.


                                        If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                        recursively read-only.  If this field is set to IfPossible, the mount is made

                                        recursively read-only, if it is supported by the container runtime.  If this

                                        field is set to Enabled, the mount is made recursively read-only if it is

                                        supported by the container runtime, otherwise the pod will not be started and

                                        an error will be generated to indicate the reason.


                                        If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                        None (or be unspecified, which defaults to None).


                                        If this field is not specified, it is treated as an equivalent of Disabled.'
                                      type: string
                                    subPath:
                                      description: 'Path within the volume from which the container''s volume should be mounted.

                                        Defaults to "" (volume''s root).'
                                      type: string
                                    subPathExpr:
                                      description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                        Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                        Defaults to "" (volume''s root).

                                        SubPathExpr and SubPath are mutually exclusive.'
                                      type: string
                                  required:
                                  - mountPath
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - mountPath
                                x-kubernetes-list-type: map
                              workingDir:
                                description: 'Container''s working directory.

                                  If not specified, the container runtime''s default will be used, which

                                  might be configured in the container image.

                                  Cannot be updated.'
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        retryStrategy:
                          description: 'RetryStrategy describes how to retry container nodes if the container set fails.

                            Note that this works differently from the template-level `retryStrategy` as it is a process-level retry that does not create new Pods or containers.'
                          properties:
                            duration:
                              description: "Duration is the time between each retry, examples values are \"300ms\", \"1s\" or \"5m\".\nValid time units are \"ns\", \"us\" (or \"\xB5s\"), \"ms\", \"s\", \"m\", \"h\"."
                              type: string
                            retries:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'Retries is the maximum number of retry attempts for each container. It does not include the

                                first, original attempt; the maximum number of total attempts will be `retries + 1`.'
                              x-kubernetes-int-or-string: true
                          required:
                          - retries
                          type: object
                        volumeMounts:
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                      required:
                      - containers
                      type: object
                    daemon:
                      description: Daemon will allow a workflow to proceed to the next step so long as the container reaches readiness
                      type: boolean
                    dag:
                      description: DAG template subtype which runs a DAG
                      properties:
                        failFast:
                          description: 'This flag is for DAG logic. The DAG logic has a built-in "fail fast" feature to stop scheduling new steps,

                            as soon as it detects that one of the DAG nodes is failed. Then it waits until all DAG nodes are completed

                            before failing the DAG itself.

                            The FailFast flag default is true,  if set to false, it will allow a DAG to run all branches of the DAG to

                            completion (either success or failure), regardless of the failed outcomes of branches in the DAG.

                            More info and example about this feature at https://github.com/argoproj/argo-workflows/issues/1442'
                          type: boolean
                        target:
                          description: Target are one or more names of targets to execute in a DAG
                          type: string
                        tasks:
                          description: 'Tasks are a list of DAG tasks

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: 'DAGTask represents a node in the graph during DAG execution

                              Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.'
                            properties:
                              arguments:
                                description: Arguments are the parameter and artifact arguments to the template
                                properties:
                                  artifacts:
                                    description: Artifacts is the list of artifacts to pass to the template or workflow
                                    items:
                                      description: Artifact indicates an artifact to place at a specified path
                                      properties:
                                        archive:
                                          description: Archive controls how the artifact will be saved to the artifact repository.
                                          properties:
                                            none:
                                              description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                save/load the directory appropriately.'
                                              type: object
                                            tar:
                                              description: TarStrategy will tar and gzip the file or directory when saving
                                              properties:
                                                compressionLevel:
                                                  description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                    Defaults to gzip.DefaultCompression.'
                                                  format: int32
                                                  type: integer
                                              type: object
                                            zip:
                                              description: ZipStrategy will unzip zipped input artifacts
                                              type: object
                                          type: object
                                        archiveLogs:
                                          description: ArchiveLogs indicates if the container logs should be archived
                                          type: boolean
                                        artifactGC:
                                          description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                          properties:
                                            podMetadata:
                                              description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                              properties:
                                                annotations:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                                labels:
                                                  additionalProperties:
                                                    type: string
                                                  type: object
                                              type: object
                                            serviceAccountName:
                                              description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                              type: string
                                            strategy:
                                              description: Strategy is the strategy to use.
                                              enum:
                                              - ''
                                              - OnWorkflowCompletion
                                              - OnWorkflowDeletion
                                              - Never
                                              type: string
                                          type: object
                                        artifactory:
                                          description: Artifactory contains artifactory artifact location details
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            url:
                                              description: URL of the artifact
                                              type: string
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - url
                                          type: object
                                        azure:
                                          description: Azure contains Azure Storage artifact location details
                                          properties:
                                            accountKeySecret:
                                              description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            blob:
                                              description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                              type: string
                                            container:
                                              description: Container is the container where resources will be stored
                                              type: string
                                            endpoint:
                                              description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                              type: string
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          required:
                                          - blob
                                          - container
                                          - endpoint
                                          type: object
                                        deleted:
                                          description: Has this been deleted?
                                          type: boolean
                                        from:
                                          description: From allows an artifact to reference an artifact from a previous step
                                          type: string
                                        fromExpression:
                                          description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                          type: string
                                        gcs:
                                          description: GCS contains GCS artifact location details
                                          properties:
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            key:
                                              description: Key is the path in the bucket where the artifact resides
                                              type: string
                                            serviceAccountKeySecret:
                                              description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - key
                                          type: object
                                        git:
                                          description: Git contains git artifact location details
                                          properties:
                                            branch:
                                              description: Branch is the branch to fetch when `SingleBranch` is enabled
                                              type: string
                                            depth:
                                              description: 'Depth specifies clones/fetches should be shallow and include the given

                                                number of commits from the branch tip'
                                              format: int64
                                              type: integer
                                            disableSubmodules:
                                              description: DisableSubmodules disables submodules during git clone
                                              type: boolean
                                            fetch:
                                              description: Fetch specifies a number of refs that should be fetched before checkout
                                              items:
                                                type: string
                                              type: array
                                            insecureIgnoreHostKey:
                                              description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                              type: boolean
                                            insecureSkipTLS:
                                              description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                              type: boolean
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            repo:
                                              description: Repo is the git repository
                                              type: string
                                            revision:
                                              description: Revision is the git commit, tag, branch to checkout
                                              type: string
                                            singleBranch:
                                              description: SingleBranch enables single branch clone, using the `branch` parameter
                                              type: boolean
                                            sshPrivateKeySecret:
                                              description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          required:
                                          - repo
                                          type: object
                                        globalName:
                                          description: 'GlobalName exports an output artifact to the global scope, making it available as

                                            ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                          type: string
                                        hdfs:
                                          description: HDFS contains HDFS artifact location details
                                          properties:
                                            addresses:
                                              description: Addresses is accessible addresses of HDFS name nodes
                                              items:
                                                type: string
                                              type: array
                                            dataTransferProtection:
                                              description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                              type: string
                                            force:
                                              description: Force copies a file forcibly even if it exists
                                              type: boolean
                                            hdfsUser:
                                              description: 'HDFSUser is the user to access HDFS file system.

                                                It is ignored if either ccache or keytab is used.'
                                              type: string
                                            krbCCacheSecret:
                                              description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                Either ccache or keytab can be set to use Kerberos.'
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbConfigConfigMap:
                                              description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                It must be set if either ccache or keytab is used.'
                                              properties:
                                                key:
                                                  description: The key to select.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the ConfigMap or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbKeytabSecret:
                                              description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                Either ccache or keytab can be set to use Kerberos.'
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            krbRealm:
                                              description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                It must be set if keytab is used.'
                                              type: string
                                            krbServicePrincipalName:
                                              description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                It must be set if either ccache or keytab is used.'
                                              type: string
                                            krbUsername:
                                              description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                It must be set if keytab is used.'
                                              type: string
                                            path:
                                              description: Path is a file path in HDFS
                                              type: string
                                          required:
                                          - path
                                          type: object
                                        http:
                                          description: HTTP contains HTTP artifact location details
                                          properties:
                                            auth:
                                              description: Auth contains information for client authentication
                                              properties:
                                                basicAuth:
                                                  description: BasicAuth describes the secret selectors required for basic authentication
                                                  properties:
                                                    passwordSecret:
                                                      description: PasswordSecret is the secret selector to the repository password
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    usernameSecret:
                                                      description: UsernameSecret is the secret selector to the repository username
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                clientCert:
                                                  description: ClientCertAuth holds necessary information for client authentication via certificates
                                                  properties:
                                                    clientCertSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientKeySecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                oauth2:
                                                  description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                  properties:
                                                    clientIDSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    clientSecretSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                    endpointParams:
                                                      items:
                                                        description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                        properties:
                                                          key:
                                                            description: Name is the header name
                                                            type: string
                                                          value:
                                                            description: Value is the literal value to use for the header
                                                            type: string
                                                        required:
                                                        - key
                                                        type: object
                                                      type: array
                                                    scopes:
                                                      items:
                                                        type: string
                                                      type: array
                                                    tokenURLSecret:
                                                      description: SecretKeySelector selects a key of a Secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                              type: object
                                            headers:
                                              description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                              items:
                                                description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                properties:
                                                  name:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - name
                                                - value
                                                type: object
                                              type: array
                                            url:
                                              description: URL of the artifact
                                              type: string
                                          required:
                                          - url
                                          type: object
                                        mode:
                                          description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                            Set when loading input artifacts. It is recommended to set the mode value

                                            to ensure the artifact has the expected permissions in your container.'
                                          format: int32
                                          maximum: 511
                                          minimum: 0
                                          type: integer
                                        name:
                                          description: name of the artifact. must be unique within a template's inputs/outputs.
                                          pattern: ^[-a-zA-Z0-9_{}.]+$
                                          type: string
                                        optional:
                                          description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                          type: boolean
                                        oss:
                                          description: OSS contains OSS artifact location details
                                          properties:
                                            accessKeySecret:
                                              description: AccessKeySecret is the secret selector to the bucket's access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            createBucketIfNotPresent:
                                              description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                              type: boolean
                                            endpoint:
                                              description: Endpoint is the hostname of the bucket endpoint
                                              type: string
                                            key:
                                              description: Key is the path in the bucket where the artifact resides
                                              type: string
                                            lifecycleRule:
                                              description: LifecycleRule specifies how to manage bucket's lifecycle
                                              properties:
                                                markDeletionAfterDays:
                                                  description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                  format: int32
                                                  type: integer
                                                markInfrequentAccessAfterDays:
                                                  description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                  format: int32
                                                  type: integer
                                              type: object
                                            secretKeySecret:
                                              description: SecretKeySecret is the secret selector to the bucket's secret key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            securityToken:
                                              description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                              type: string
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                        path:
                                          description: Path is the container path to the artifact
                                          type: string
                                        plugin:
                                          description: Plugin contains plugin artifact location details
                                          properties:
                                            configuration:
                                              description: Configuration is the plugin defined configuration for the artifact driver plugin
                                              type: string
                                            connectionTimeoutSeconds:
                                              description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                              format: int32
                                              type: integer
                                            key:
                                              description: Key is the path in the artifact repository where the artifact resides
                                              type: string
                                            name:
                                              description: Name is the name of the artifact driver plugin
                                              type: string
                                          required:
                                          - key
                                          type: object
                                        raw:
                                          description: Raw contains raw artifact location details
                                          properties:
                                            data:
                                              description: Data is the string contents of the artifact
                                              type: string
                                          required:
                                          - data
                                          type: object
                                        recurseMode:
                                          description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                          type: boolean
                                        s3:
                                          description: S3 contains S3 artifact location details
                                          properties:
                                            accessKeySecret:
                                              description: AccessKeySecret is the secret selector to the bucket's access key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            bucket:
                                              description: Bucket is the name of the bucket
                                              type: string
                                            caSecret:
                                              description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            createBucketIfNotPresent:
                                              description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                              properties:
                                                objectLocking:
                                                  description: ObjectLocking Enable object locking
                                                  type: boolean
                                              type: object
                                            encryptionOptions:
                                              description: S3EncryptionOptions used to determine encryption options during s3 operations
                                              properties:
                                                enableEncryption:
                                                  description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                  type: boolean
                                                kmsEncryptionContext:
                                                  description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                  type: string
                                                kmsKeyId:
                                                  description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                  type: string
                                                serverSideCustomerKeySecret:
                                                  description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              type: object
                                            endpoint:
                                              description: Endpoint is the hostname of the bucket endpoint
                                              type: string
                                            insecure:
                                              description: Insecure will connect to the service with TLS
                                              type: boolean
                                            key:
                                              description: Key is the key in the bucket where the artifact resides
                                              type: string
                                            region:
                                              description: Region contains the optional bucket region
                                              type: string
                                            roleARN:
                                              description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                              type: string
                                            secretKeySecret:
                                              description: SecretKeySecret is the secret selector to the bucket's secret key
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            sessionTokenSecret:
                                              description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            useSDKCreds:
                                              description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                              type: boolean
                                          type: object
                                        subPath:
                                          description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                          type: string
                                      required:
                                      - name
                                      type: object
                                      x-kubernetes-validations:
                                      - message: at most one artifact location can be specified
                                        rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                    type: array
                                  parameters:
                                    description: Parameters is the list of parameters to pass to the template or workflow
                                    items:
                                      description: Parameter indicate a passed string parameter to a service template with an optional default value
                                      properties:
                                        default:
                                          description: Default is the default value to use for an input parameter if a value was not supplied
                                          type: string
                                        description:
                                          description: Description is the parameter description
                                          type: string
                                        enum:
                                          description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                          items:
                                            description: '* It''s JSON type is just string.

                                              * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                              * It will marshall back to string - marshalling is not symmetric.'
                                            type: string
                                          minItems: 1
                                          type: array
                                        globalName:
                                          description: 'GlobalName exports an output parameter to the global scope, making it available as

                                            ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                          type: string
                                        name:
                                          description: Name is the parameter name
                                          pattern: ^[-a-zA-Z0-9_]+$
                                          type: string
                                        value:
                                          description: 'Value is the literal value to use for the parameter.

                                            If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                          type: string
                                        valueFrom:
                                          description: ValueFrom is the source for the output parameter's value
                                          properties:
                                            configMapKeyRef:
                                              description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                              properties:
                                                key:
                                                  description: The key to select.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the ConfigMap or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            default:
                                              description: Default specifies a value to be used if retrieving the value from the specified source fails
                                              type: string
                                            event:
                                              description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                              type: string
                                            expression:
                                              description: Expression, if defined, is evaluated to specify the value for the parameter
                                              type: string
                                            jqFilter:
                                              description: JQFilter expression against the resource object in resource templates
                                              type: string
                                            jsonPath:
                                              description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                              type: string
                                            parameter:
                                              description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                              type: string
                                            path:
                                              description: Path in the container to retrieve an output parameter value from in container templates
                                              type: string
                                            supplied:
                                              description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                              type: object
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                type: object
                              continueOn:
                                description: 'ContinueOn makes argo to proceed with the following step even if this step fails.

                                  Errors and Failed states can be specified'
                                properties:
                                  error:
                                    type: boolean
                                  failed:
                                    type: boolean
                                type: object
                              dependencies:
                                description: Dependencies are name of other targets which this depends on
                                items:
                                  type: string
                                type: array
                              depends:
                                description: Depends are name of other targets which this depends on
                                type: string
                              hooks:
                                additionalProperties:
                                  properties:
                                    arguments:
                                      description: Arguments hold arguments to the template
                                      properties:
                                        artifacts:
                                          description: Artifacts is the list of artifacts to pass to the template or workflow
                                          items:
                                            description: Artifact indicates an artifact to place at a specified path
                                            properties:
                                              archive:
                                                description: Archive controls how the artifact will be saved to the artifact repository.
                                                properties:
                                                  none:
                                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                      save/load the directory appropriately.'
                                                    type: object
                                                  tar:
                                                    description: TarStrategy will tar and gzip the file or directory when saving
                                                    properties:
                                                      compressionLevel:
                                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                          Defaults to gzip.DefaultCompression.'
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  zip:
                                                    description: ZipStrategy will unzip zipped input artifacts
                                                    type: object
                                                type: object
                                              archiveLogs:
                                                description: ArchiveLogs indicates if the container logs should be archived
                                                type: boolean
                                              artifactGC:
                                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                                properties:
                                                  podMetadata:
                                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                    properties:
                                                      annotations:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                      labels:
                                                        additionalProperties:
                                                          type: string
                                                        type: object
                                                    type: object
                                                  serviceAccountName:
                                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                    type: string
                                                  strategy:
                                                    description: Strategy is the strategy to use.
                                                    enum:
                                                    - ''
                                                    - OnWorkflowCompletion
                                                    - OnWorkflowDeletion
                                                    - Never
                                                    type: string
                                                type: object
                                              artifactory:
                                                description: Artifactory contains artifactory artifact location details
                                                properties:
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  url:
                                                    description: URL of the artifact
                                                    type: string
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - url
                                                type: object
                                              azure:
                                                description: Azure contains Azure Storage artifact location details
                                                properties:
                                                  accountKeySecret:
                                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  blob:
                                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                    type: string
                                                  container:
                                                    description: Container is the container where resources will be stored
                                                    type: string
                                                  endpoint:
                                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                    type: string
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                required:
                                                - blob
                                                - container
                                                - endpoint
                                                type: object
                                              deleted:
                                                description: Has this been deleted?
                                                type: boolean
                                              from:
                                                description: From allows an artifact to reference an artifact from a previous step
                                                type: string
                                              fromExpression:
                                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                                type: string
                                              gcs:
                                                description: GCS contains GCS artifact location details
                                                properties:
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  key:
                                                    description: Key is the path in the bucket where the artifact resides
                                                    type: string
                                                  serviceAccountKeySecret:
                                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - key
                                                type: object
                                              git:
                                                description: Git contains git artifact location details
                                                properties:
                                                  branch:
                                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                    type: string
                                                  depth:
                                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                                      number of commits from the branch tip'
                                                    format: int64
                                                    type: integer
                                                  disableSubmodules:
                                                    description: DisableSubmodules disables submodules during git clone
                                                    type: boolean
                                                  fetch:
                                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                                    items:
                                                      type: string
                                                    type: array
                                                  insecureIgnoreHostKey:
                                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                    type: boolean
                                                  insecureSkipTLS:
                                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                    type: boolean
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  repo:
                                                    description: Repo is the git repository
                                                    type: string
                                                  revision:
                                                    description: Revision is the git commit, tag, branch to checkout
                                                    type: string
                                                  singleBranch:
                                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                                    type: boolean
                                                  sshPrivateKeySecret:
                                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                required:
                                                - repo
                                                type: object
                                              globalName:
                                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                                type: string
                                              hdfs:
                                                description: HDFS contains HDFS artifact location details
                                                properties:
                                                  addresses:
                                                    description: Addresses is accessible addresses of HDFS name nodes
                                                    items:
                                                      type: string
                                                    type: array
                                                  dataTransferProtection:
                                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                    type: string
                                                  force:
                                                    description: Force copies a file forcibly even if it exists
                                                    type: boolean
                                                  hdfsUser:
                                                    description: 'HDFSUser is the user to access HDFS file system.

                                                      It is ignored if either ccache or keytab is used.'
                                                    type: string
                                                  krbCCacheSecret:
                                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                      Either ccache or keytab can be set to use Kerberos.'
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbConfigConfigMap:
                                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                      It must be set if either ccache or keytab is used.'
                                                    properties:
                                                      key:
                                                        description: The key to select.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the ConfigMap or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbKeytabSecret:
                                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                      Either ccache or keytab can be set to use Kerberos.'
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  krbRealm:
                                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                      It must be set if keytab is used.'
                                                    type: string
                                                  krbServicePrincipalName:
                                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                      It must be set if either ccache or keytab is used.'
                                                    type: string
                                                  krbUsername:
                                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                      It must be set if keytab is used.'
                                                    type: string
                                                  path:
                                                    description: Path is a file path in HDFS
                                                    type: string
                                                required:
                                                - path
                                                type: object
                                              http:
                                                description: HTTP contains HTTP artifact location details
                                                properties:
                                                  auth:
                                                    description: Auth contains information for client authentication
                                                    properties:
                                                      basicAuth:
                                                        description: BasicAuth describes the secret selectors required for basic authentication
                                                        properties:
                                                          passwordSecret:
                                                            description: PasswordSecret is the secret selector to the repository password
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          usernameSecret:
                                                            description: UsernameSecret is the secret selector to the repository username
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      clientCert:
                                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                                        properties:
                                                          clientCertSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientKeySecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                      oauth2:
                                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                        properties:
                                                          clientIDSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          clientSecretSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                          endpointParams:
                                                            items:
                                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                              properties:
                                                                key:
                                                                  description: Name is the header name
                                                                  type: string
                                                                value:
                                                                  description: Value is the literal value to use for the header
                                                                  type: string
                                                              required:
                                                              - key
                                                              type: object
                                                            type: array
                                                          scopes:
                                                            items:
                                                              type: string
                                                            type: array
                                                          tokenURLSecret:
                                                            description: SecretKeySelector selects a key of a Secret.
                                                            properties:
                                                              key:
                                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                                type: string
                                                              name:
                                                                default: ''
                                                                description: 'Name of the referent.

                                                                  This field is effectively required, but due to backwards compatibility is

                                                                  allowed to be empty. Instances of this type with an empty value here are

                                                                  almost certainly wrong.

                                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                                type: string
                                                              optional:
                                                                description: Specify whether the Secret or its key must be defined
                                                                type: boolean
                                                            required:
                                                            - key
                                                            type: object
                                                            x-kubernetes-map-type: atomic
                                                        type: object
                                                    type: object
                                                  headers:
                                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                    items:
                                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                      properties:
                                                        name:
                                                          description: Name is the header name
                                                          type: string
                                                        value:
                                                          description: Value is the literal value to use for the header
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  url:
                                                    description: URL of the artifact
                                                    type: string
                                                required:
                                                - url
                                                type: object
                                              mode:
                                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                  Set when loading input artifacts. It is recommended to set the mode value

                                                  to ensure the artifact has the expected permissions in your container.'
                                                format: int32
                                                maximum: 511
                                                minimum: 0
                                                type: integer
                                              name:
                                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                                type: string
                                              optional:
                                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                                type: boolean
                                              oss:
                                                description: OSS contains OSS artifact location details
                                                properties:
                                                  accessKeySecret:
                                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  createBucketIfNotPresent:
                                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                    type: boolean
                                                  endpoint:
                                                    description: Endpoint is the hostname of the bucket endpoint
                                                    type: string
                                                  key:
                                                    description: Key is the path in the bucket where the artifact resides
                                                    type: string
                                                  lifecycleRule:
                                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                                    properties:
                                                      markDeletionAfterDays:
                                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                        format: int32
                                                        type: integer
                                                      markInfrequentAccessAfterDays:
                                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                        format: int32
                                                        type: integer
                                                    type: object
                                                  secretKeySecret:
                                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  securityToken:
                                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                    type: string
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                              path:
                                                description: Path is the container path to the artifact
                                                type: string
                                              plugin:
                                                description: Plugin contains plugin artifact location details
                                                properties:
                                                  configuration:
                                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                    type: string
                                                  connectionTimeoutSeconds:
                                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                    format: int32
                                                    type: integer
                                                  key:
                                                    description: Key is the path in the artifact repository where the artifact resides
                                                    type: string
                                                  name:
                                                    description: Name is the name of the artifact driver plugin
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              raw:
                                                description: Raw contains raw artifact location details
                                                properties:
                                                  data:
                                                    description: Data is the string contents of the artifact
                                                    type: string
                                                required:
                                                - data
                                                type: object
                                              recurseMode:
                                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                                type: boolean
                                              s3:
                                                description: S3 contains S3 artifact location details
                                                properties:
                                                  accessKeySecret:
                                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  bucket:
                                                    description: Bucket is the name of the bucket
                                                    type: string
                                                  caSecret:
                                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  createBucketIfNotPresent:
                                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                    properties:
                                                      objectLocking:
                                                        description: ObjectLocking Enable object locking
                                                        type: boolean
                                                    type: object
                                                  encryptionOptions:
                                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                    properties:
                                                      enableEncryption:
                                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                        type: boolean
                                                      kmsEncryptionContext:
                                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                        type: string
                                                      kmsKeyId:
                                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                        type: string
                                                      serverSideCustomerKeySecret:
                                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                        properties:
                                                          key:
                                                            description: The key of the secret to select from.  Must be a valid secret key.
                                                            type: string
                                                          name:
                                                            default: ''
                                                            description: 'Name of the referent.

                                                              This field is effectively required, but due to backwards compatibility is

                                                              allowed to be empty. Instances of this type with an empty value here are

                                                              almost certainly wrong.

                                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                            type: string
                                                          optional:
                                                            description: Specify whether the Secret or its key must be defined
                                                            type: boolean
                                                        required:
                                                        - key
                                                        type: object
                                                        x-kubernetes-map-type: atomic
                                                    type: object
                                                  endpoint:
                                                    description: Endpoint is the hostname of the bucket endpoint
                                                    type: string
                                                  insecure:
                                                    description: Insecure will connect to the service with TLS
                                                    type: boolean
                                                  key:
                                                    description: Key is the key in the bucket where the artifact resides
                                                    type: string
                                                  region:
                                                    description: Region contains the optional bucket region
                                                    type: string
                                                  roleARN:
                                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                    type: string
                                                  secretKeySecret:
                                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  sessionTokenSecret:
                                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  useSDKCreds:
                                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                    type: boolean
                                                type: object
                                              subPath:
                                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                                type: string
                                            required:
                                            - name
                                            type: object
                                            x-kubernetes-validations:
                                            - message: at most one artifact location can be specified
                                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                          type: array
                                        parameters:
                                          description: Parameters is the list of parameters to pass to the template or workflow
                                          items:
                                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                                            properties:
                                              default:
                                                description: Default is the default value to use for an input parameter if a value was not supplied
                                                type: string
                                              description:
                                                description: Description is the parameter description
                                                type: string
                                              enum:
                                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                                items:
                                                  description: '* It''s JSON type is just string.

                                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                    * It will marshall back to string - marshalling is not symmetric.'
                                                  type: string
                                                minItems: 1
                                                type: array
                                              globalName:
                                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                                type: string
                                              name:
                                                description: Name is the parameter name
                                                pattern: ^[-a-zA-Z0-9_]+$
                                                type: string
                                              value:
                                                description: 'Value is the literal value to use for the parameter.

                                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                                type: string
                                              valueFrom:
                                                description: ValueFrom is the source for the output parameter's value
                                                properties:
                                                  configMapKeyRef:
                                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                    properties:
                                                      key:
                                                        description: The key to select.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the ConfigMap or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  default:
                                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                    type: string
                                                  event:
                                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                    type: string
                                                  expression:
                                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                                    type: string
                                                  jqFilter:
                                                    description: JQFilter expression against the resource object in resource templates
                                                    type: string
                                                  jsonPath:
                                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                    type: string
                                                  parameter:
                                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                    type: string
                                                  path:
                                                    description: Path in the container to retrieve an output parameter value from in container templates
                                                    type: string
                                                  supplied:
                                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                    type: object
                                                type: object
                                            required:
                                            - name
                                            type: object
                                          type: array
                                      type: object
                                    expression:
                                      description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                        be retried and the retry strategy will be ignored'
                                      type: string
                                    template:
                                      description: Template is the name of the template to execute by the hook
                                      type: string
                                    templateRef:
                                      description: TemplateRef is the reference to the template resource to execute by the hook
                                      properties:
                                        clusterScope:
                                          description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                          type: boolean
                                        name:
                                          description: Name is the resource name of the template.
                                          type: string
                                        template:
                                          description: Template is the name of referred template in the resource.
                                          type: string
                                      type: object
                                  type: object
                                description: 'Hooks hold the lifecycle hook which is invoked at lifecycle of

                                  task, irrespective of the success, failure, or error status of the primary task'
                                type: object
                              inline:
                                description: 'Inline is the template. Template must be empty if this is declared (and vice-versa).

                                  Note: As mentioned in the corresponding definition in WorkflowStep, this struct is defined recursively,

                                  so we need "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                x-kubernetes-preserve-unknown-fields: true
                              name:
                                description: Name is the name of the target
                                maxLength: 128
                                pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                                type: string
                              onExit:
                                description: 'OnExit is a template reference which is invoked at the end of the

                                  template, irrespective of the success, failure, or error of the

                                  primary template.

                                  DEPRECATED: Use Hooks[exit].Template instead.'
                                type: string
                              template:
                                description: Name of template to execute
                                type: string
                              templateRef:
                                description: TemplateRef is the reference to the template resource to execute.
                                properties:
                                  clusterScope:
                                    description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                    type: boolean
                                  name:
                                    description: Name is the resource name of the template.
                                    type: string
                                  template:
                                    description: Template is the name of referred template in the resource.
                                    type: string
                                type: object
                              when:
                                description: When is an expression in which the task should conditionally execute
                                type: string
                              withItems:
                                description: 'WithItems expands a task into multiple parallel tasks from the items in the list

                                  Note: The structure of WithItems is free-form, so we need

                                  "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                                x-kubernetes-preserve-unknown-fields: true
                              withParam:
                                description: 'WithParam expands a task into multiple parallel tasks from the value in the parameter,

                                  which is expected to be a JSON list.'
                                type: string
                              withSequence:
                                description: WithSequence expands a task into a numeric sequence
                                properties:
                                  count:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Count is number of elements in the sequence (default: 0). Not to be used with end'
                                    x-kubernetes-int-or-string: true
                                  end:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number at which to end the sequence (default: 0). Not to be used with Count'
                                    x-kubernetes-int-or-string: true
                                  format:
                                    description: Format is a printf format string to format the value in the sequence
                                    type: string
                                  start:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number at which to start the sequence (default: 0)'
                                    x-kubernetes-int-or-string: true
                                type: object
                                x-kubernetes-validations:
                                - message: only one of count or end can be defined
                                  rule: '!(has(self.count) && has(self.end))'
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: cannot use both 'depends' and 'dependencies'
                              rule: '!has(self.depends) || !has(self.dependencies)'
                            - message: cannot use 'continueOn' when using 'depends'
                              rule: '!has(self.depends) || !has(self.continueOn)'
                            - message: task name cannot begin with a digit when using 'depends' or 'dependencies'
                              rule: '!(has(self.depends) || has(self.dependencies)) || !self.name.matches(''^[0-9]'')'
                          maxItems: 200
                          minItems: 1
                          type: array
                      required:
                      - tasks
                      type: object
                    data:
                      description: Data is a data template
                      properties:
                        source:
                          description: Source sources external data into a data template
                          properties:
                            artifactPaths:
                              description: ArtifactPaths is a data transformation that collects a list of artifact paths
                              properties:
                                archive:
                                  description: Archive controls how the artifact will be saved to the artifact repository.
                                  properties:
                                    none:
                                      description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                        files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                        save/load the directory appropriately.'
                                      type: object
                                    tar:
                                      description: TarStrategy will tar and gzip the file or directory when saving
                                      properties:
                                        compressionLevel:
                                          description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                            Defaults to gzip.DefaultCompression.'
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      description: ZipStrategy will unzip zipped input artifacts
                                      type: object
                                  type: object
                                archiveLogs:
                                  description: ArchiveLogs indicates if the container logs should be archived
                                  type: boolean
                                artifactGC:
                                  description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                  properties:
                                    podMetadata:
                                      description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                      type: string
                                    strategy:
                                      description: Strategy is the strategy to use.
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  description: Artifactory contains artifactory artifact location details
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      description: URL of the artifact
                                      type: string
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  description: Azure contains Azure Storage artifact location details
                                  properties:
                                    accountKeySecret:
                                      description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                      type: string
                                    container:
                                      description: Container is the container where resources will be stored
                                      type: string
                                    endpoint:
                                      description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  description: Has this been deleted?
                                  type: boolean
                                from:
                                  description: From allows an artifact to reference an artifact from a previous step
                                  type: string
                                fromExpression:
                                  description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                  type: string
                                gcs:
                                  description: GCS contains GCS artifact location details
                                  properties:
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    serviceAccountKeySecret:
                                      description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  description: Git contains git artifact location details
                                  properties:
                                    branch:
                                      description: Branch is the branch to fetch when `SingleBranch` is enabled
                                      type: string
                                    depth:
                                      description: 'Depth specifies clones/fetches should be shallow and include the given

                                        number of commits from the branch tip'
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      description: DisableSubmodules disables submodules during git clone
                                      type: boolean
                                    fetch:
                                      description: Fetch specifies a number of refs that should be fetched before checkout
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                      type: boolean
                                    insecureSkipTLS:
                                      description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                      type: boolean
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      description: Repo is the git repository
                                      type: string
                                    revision:
                                      description: Revision is the git commit, tag, branch to checkout
                                      type: string
                                    singleBranch:
                                      description: SingleBranch enables single branch clone, using the `branch` parameter
                                      type: boolean
                                    sshPrivateKeySecret:
                                      description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  description: 'GlobalName exports an output artifact to the global scope, making it available as

                                    ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                  type: string
                                hdfs:
                                  description: HDFS contains HDFS artifact location details
                                  properties:
                                    addresses:
                                      description: Addresses is accessible addresses of HDFS name nodes
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                        It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                      type: string
                                    force:
                                      description: Force copies a file forcibly even if it exists
                                      type: boolean
                                    hdfsUser:
                                      description: 'HDFSUser is the user to access HDFS file system.

                                        It is ignored if either ccache or keytab is used.'
                                      type: string
                                    krbCCacheSecret:
                                      description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      description: 'KrbConfig is the configmap selector for Kerberos config as string

                                        It must be set if either ccache or keytab is used.'
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    krbServicePrincipalName:
                                      description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                        It must be set if either ccache or keytab is used.'
                                      type: string
                                    krbUsername:
                                      description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    path:
                                      description: Path is a file path in HDFS
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  description: HTTP contains HTTP artifact location details
                                  properties:
                                    auth:
                                      description: Auth contains information for client authentication
                                      properties:
                                        basicAuth:
                                          description: BasicAuth describes the secret selectors required for basic authentication
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          description: ClientCertAuth holds necessary information for client authentication via certificates
                                          properties:
                                            clientCertSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                          properties:
                                            clientIDSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                properties:
                                                  key:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                      items:
                                        description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                        properties:
                                          name:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      description: URL of the artifact
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                    Set when loading input artifacts. It is recommended to set the mode value

                                    to ensure the artifact has the expected permissions in your container.'
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  description: name of the artifact. must be unique within a template's inputs/outputs.
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                  type: boolean
                                oss:
                                  description: OSS contains OSS artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                      type: boolean
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    lifecycleRule:
                                      description: LifecycleRule specifies how to manage bucket's lifecycle
                                      properties:
                                        markDeletionAfterDays:
                                          description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  description: Path is the container path to the artifact
                                  type: string
                                plugin:
                                  description: Plugin contains plugin artifact location details
                                  properties:
                                    configuration:
                                      description: Configuration is the plugin defined configuration for the artifact driver plugin
                                      type: string
                                    connectionTimeoutSeconds:
                                      description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                      format: int32
                                      type: integer
                                    key:
                                      description: Key is the path in the artifact repository where the artifact resides
                                      type: string
                                    name:
                                      description: Name is the name of the artifact driver plugin
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  description: Raw contains raw artifact location details
                                  properties:
                                    data:
                                      description: Data is the string contents of the artifact
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                  type: boolean
                                s3:
                                  description: S3 contains S3 artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    caSecret:
                                      description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                      properties:
                                        objectLocking:
                                          description: ObjectLocking Enable object locking
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      description: S3EncryptionOptions used to determine encryption options during s3 operations
                                      properties:
                                        enableEncryption:
                                          description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                          type: boolean
                                        kmsEncryptionContext:
                                          description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                          type: string
                                        kmsKeyId:
                                          description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                          type: string
                                        serverSideCustomerKeySecret:
                                          description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    insecure:
                                      description: Insecure will connect to the service with TLS
                                      type: boolean
                                    key:
                                      description: Key is the key in the bucket where the artifact resides
                                      type: string
                                    region:
                                      description: Region contains the optional bucket region
                                      type: string
                                    roleARN:
                                      description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                      type: string
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  type: object
                                subPath:
                                  description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                  type: string
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: at most one artifact location can be specified
                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: object
                        transformation:
                          description: Transformation applies a set of transformations
                          items:
                            properties:
                              expression:
                                description: Expression defines an expr expression to apply
                                type: string
                            required:
                            - expression
                            type: object
                          type: array
                      required:
                      - source
                      - transformation
                      type: object
                    executor:
                      description: Executor holds configurations of the executor container.
                      properties:
                        serviceAccountName:
                          description: ServiceAccountName specifies the service account name of the executor container.
                          type: string
                      type: object
                    failFast:
                      description: 'FailFast, if specified, will fail this template if any of its child pods has failed. This is useful for when this

                        template is expanded with `withItems`, etc.'
                      type: boolean
                    hostAliases:
                      description: HostAliases is an optional list of hosts and IPs that will be injected into the pod spec
                      items:
                        description: 'HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the

                          pod''s hosts file.'
                        properties:
                          hostnames:
                            description: Hostnames for the above IP address.
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          ip:
                            description: IP address of the host file entry.
                            type: string
                        required:
                        - ip
                        type: object
                      type: array
                    http:
                      description: HTTP makes a HTTP request
                      properties:
                        body:
                          description: Body is content of the HTTP Request
                          type: string
                        bodyFrom:
                          description: BodyFrom is  content of the HTTP Request as Bytes
                          properties:
                            bytes:
                              format: byte
                              type: string
                          type: object
                        headers:
                          description: Headers are an optional list of headers to send with HTTP requests
                          items:
                            properties:
                              name:
                                type: string
                              value:
                                type: string
                              valueFrom:
                                properties:
                                  secretKeyRef:
                                    description: SecretKeySelector selects a key of a Secret.
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        insecureSkipVerify:
                          description: InsecureSkipVerify is a bool when if set to true will skip TLS verification for the HTTP client
                          type: boolean
                        method:
                          description: Method is HTTP methods for HTTP Request
                          type: string
                        successCondition:
                          description: SuccessCondition is an expression if evaluated to true is considered successful
                          type: string
                        timeoutSeconds:
                          description: TimeoutSeconds is request timeout for HTTP Request. Default is 30 seconds
                          format: int64
                          type: integer
                        url:
                          description: URL of the HTTP Request
                          type: string
                      required:
                      - url
                      type: object
                    initContainers:
                      description: InitContainers is a list of containers which run before the main container.
                      items:
                        description: UserContainer is a container specified by a user.
                        properties:
                          args:
                            description: 'Arguments to the entrypoint.

                              The container image''s CMD is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            description: 'Entrypoint array. Not executed within a shell.

                              The container image''s ENTRYPOINT is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            description: 'List of environment variables to set in the container.

                              Cannot be updated.'
                            items:
                              description: EnvVar represents an environment variable present in a Container.
                              properties:
                                name:
                                  description: Name of the environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                value:
                                  description: 'Variable references $(VAR_NAME) are expanded

                                    using the previously defined environment variables in the container and

                                    any service environment variables. If a variable cannot be resolved,

                                    the reference in the input string will be unchanged. Double $$ are reduced

                                    to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                    "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                    Escaped references will never be expanded, regardless of whether the variable

                                    exists or not.

                                    Defaults to "".'
                                  type: string
                                valueFrom:
                                  description: Source for the environment variable's value. Cannot be used if value is not empty.
                                  properties:
                                    configMapKeyRef:
                                      description: Selects a key of a ConfigMap.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                        spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      description: Selects a key of a secret in the pod's namespace
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            description: 'List of sources to populate environment variables in the container.

                              The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                              will be reported as an event when the container is starting. When a key exists in multiple

                              sources, the value associated with the last source will take precedence.

                              Values defined by an Env with a duplicate key will take precedence.

                              Cannot be updated.'
                            items:
                              description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                              properties:
                                configMapRef:
                                  description: The ConfigMap to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                secretRef:
                                  description: The Secret to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            description: 'Container image name.

                              More info: https://kubernetes.io/docs/concepts/containers/images

                              This field is optional to allow higher level config management to default or override

                              container images in workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy.

                              One of Always, Never, IfNotPresent.

                              Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          lifecycle:
                            description: 'Actions that the management system should take in response to container lifecycle events.

                              Cannot be updated.'
                            properties:
                              postStart:
                                description: 'PostStart is called immediately after a container is created. If the handler fails,

                                  the container is terminated and restarted according to its restart policy.

                                  Other management of the container blocks until the hook completes.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                description: 'PreStop is called immediately before a container is terminated due to an

                                  API request or management event such as liveness/startup probe failure,

                                  preemption, resource contention, etc. The handler is not called if the

                                  container crashes or exits. The Pod''s termination grace period countdown begins before the

                                  PreStop hook is executed. Regardless of the outcome of the handler, the

                                  container will eventually terminate within the Pod''s termination grace

                                  period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                  or until the termination grace period is reached.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                  If not specified, the default is defined by the container runtime in use.

                                  StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                type: string
                            type: object
                          livenessProbe:
                            description: 'Periodic probe of container liveness.

                              Container will be restarted if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          mirrorVolumeMounts:
                            description: 'MirrorVolumeMounts will mount the same volumes specified in the main container

                              to the container (including artifacts), at the same mountPaths. This enables

                              dind daemon to partially see the same filesystem as the main container in

                              order to use features such as docker volume binding'
                            type: boolean
                          name:
                            description: 'Name of the container specified as a DNS_LABEL.

                              Each container in a pod must have a unique name (DNS_LABEL).

                              Cannot be updated.'
                            type: string
                          ports:
                            description: 'List of ports to expose from the container. Not specifying a port here

                              DOES NOT prevent that port from being exposed. Any port which is

                              listening on the default "0.0.0.0" address inside a container will be

                              accessible from the network.

                              Modifying this array with strategic merge patch may corrupt the data.

                              For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                              Cannot be updated.'
                            items:
                              description: ContainerPort represents a network port in a single container.
                              properties:
                                containerPort:
                                  description: 'Number of port to expose on the pod''s IP address.

                                    This must be a valid port number, 0 < x < 65536.'
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port to.
                                  type: string
                                hostPort:
                                  description: 'Number of port to expose on the host.

                                    If specified, this must be a valid port number, 0 < x < 65536.

                                    If HostNetwork is specified, this must match ContainerPort.

                                    Most containers do not need this.'
                                  format: int32
                                  type: integer
                                name:
                                  description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                    named port in a pod must have a unique name. Name for the port that can be

                                    referred to by services.'
                                  type: string
                                protocol:
                                  default: TCP
                                  description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                    Defaults to "TCP".'
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            description: 'Periodic probe of container service readiness.

                              Container will be removed from service endpoints if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            description: Resources resize policy for the container.
                            items:
                              description: ContainerResizePolicy represents resource resize policy for the container.
                              properties:
                                resourceName:
                                  description: 'Name of the resource to which this resource resize policy applies.

                                    Supported values: cpu, memory.'
                                  type: string
                                restartPolicy:
                                  description: 'Restart policy to apply when specified resource is resized.

                                    If not specified, it defaults to NotRequired.'
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            description: 'Compute Resources required by this container.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                            properties:
                              claims:
                                description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                  that are used by this container.


                                  This is an alpha field and requires enabling the

                                  DynamicResourceAllocation feature gate.


                                  This field is immutable. It can only be set for containers.'
                                items:
                                  description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                  properties:
                                    name:
                                      description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                        the Pod where this field is used. It makes that resource available

                                        inside a container.'
                                      type: string
                                    request:
                                      description: 'Request is the name chosen for a request in the referenced claim.

                                        If empty, everything from the claim is made available, otherwise

                                        only the result of this request.'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Limits describes the maximum amount of compute resources allowed.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Requests describes the minimum amount of compute resources required.

                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                            type: object
                          restartPolicy:
                            description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                              This field may only be set for init containers, and the only allowed value is "Always".

                              For non-init containers or when this field is not specified,

                              the restart behavior is defined by the Pod''s restart policy and the container type.

                              Setting the RestartPolicy as "Always" for the init container will have the following effect:

                              this init container will be continually restarted on

                              exit until all regular containers have terminated. Once all regular

                              containers have completed, all init containers with restartPolicy "Always"

                              will be shut down. This lifecycle differs from normal init containers and

                              is often referred to as a "sidecar" container. Although this init

                              container still starts in the init container sequence, it does not wait

                              for the container to complete before proceeding to the next init

                              container. Instead, the next init container starts immediately after this

                              init container is started, or after any startupProbe has successfully

                              completed.'
                            type: string
                          securityContext:
                            description: 'SecurityContext defines the security options the container should be run with.

                              If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                              More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                            properties:
                              allowPrivilegeEscalation:
                                description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                  privileges than its parent process. This bool directly controls if

                                  the no_new_privs flag will be set on the container process.

                                  AllowPrivilegeEscalation is true always when the container is:

                                  1) run as Privileged

                                  2) has CAP_SYS_ADMIN

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              appArmorProfile:
                                description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                  overrides the pod''s appArmorProfile.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must match the loaded name of the profile.

                                      Must be set if and only if type is "Localhost".'
                                    type: string
                                  type:
                                    description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                description: 'The capabilities to add/drop when running containers.

                                  Defaults to the default set of capabilities granted by the container runtime.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  add:
                                    description: Added capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    description: Removed capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                description: 'Run container in privileged mode.

                                  Processes in privileged containers are essentially equivalent to root on the host.

                                  Defaults to false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              procMount:
                                description: 'procMount denotes the type of proc mount to use for the containers.

                                  The default value is Default which uses the container runtime defaults for

                                  readonly paths and masked paths.

                                  This requires the ProcMountType feature flag to be enabled.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: string
                              readOnlyRootFilesystem:
                                description: 'Whether this container has a read-only root filesystem.

                                  Default is false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              runAsGroup:
                                description: 'The GID to run the entrypoint of the container process.

                                  Uses runtime default if unset.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              runAsNonRoot:
                                description: 'Indicates that the container must run as a non-root user.

                                  If true, the Kubelet will validate the image at runtime to ensure that it

                                  does not run as UID 0 (root) and fail to start the container if it does.

                                  If unset or false, no such validation will be performed.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                type: boolean
                              runAsUser:
                                description: 'The UID to run the entrypoint of the container process.

                                  Defaults to user specified in image metadata if unspecified.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              seLinuxOptions:
                                description: 'The SELinux context to be applied to the container.

                                  If unspecified, the container runtime will allocate a random SELinux context for each

                                  container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  level:
                                    description: Level is SELinux level label that applies to the container.
                                    type: string
                                  role:
                                    description: Role is a SELinux role label that applies to the container.
                                    type: string
                                  type:
                                    description: Type is a SELinux type label that applies to the container.
                                    type: string
                                  user:
                                    description: User is a SELinux user label that applies to the container.
                                    type: string
                                type: object
                              seccompProfile:
                                description: 'The seccomp options to use by this container. If seccomp options are

                                  provided at both the pod & container level, the container options

                                  override the pod options.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                      Must be set if type is "Localhost". Must NOT be set for any other type.'
                                    type: string
                                  type:
                                    description: 'type indicates which kind of seccomp profile will be applied.

                                      Valid options are:


                                      Localhost - a profile defined in a file on the node should be used.

                                      RuntimeDefault - the container runtime default profile should be used.

                                      Unconfined - no profile should be applied.'
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                description: 'The Windows specific settings applied to all containers.

                                  If unspecified, the options from the PodSecurityContext will be used.

                                  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is linux.'
                                properties:
                                  gmsaCredentialSpec:
                                    description: 'GMSACredentialSpec is where the GMSA admission webhook

                                      (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                      GMSA credential spec named by the GMSACredentialSpecName field.'
                                    type: string
                                  gmsaCredentialSpecName:
                                    description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                    type: string
                                  hostProcess:
                                    description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                      All of a Pod''s containers must have the same effective HostProcess value

                                      (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                      In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                    type: boolean
                                  runAsUserName:
                                    description: 'The UserName in Windows to run the entrypoint of the container process.

                                      Defaults to the user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext. If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            description: 'StartupProbe indicates that the Pod has successfully initialized.

                              If specified, no other probes are executed until this completes successfully.

                              If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                              This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                              when it might take a long time to load data or warm a cache, than during steady-state operation.

                              This cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                              is not set, reads from stdin in the container will always result in EOF.

                              Default is false.'
                            type: boolean
                          stdinOnce:
                            description: 'Whether the container runtime should close the stdin channel after it has been opened by

                              a single attach. When stdin is true the stdin stream will remain open across multiple attach

                              sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                              first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                              at which time stdin is closed and remains closed until the container is restarted. If this

                              flag is false, a container processes that reads from stdin will never receive an EOF.

                              Default is false'
                            type: boolean
                          terminationMessagePath:
                            description: 'Optional: Path at which the file to which the container''s termination message

                              will be written is mounted into the container''s filesystem.

                              Message written is intended to be brief final status, such as an assertion failure message.

                              Will be truncated by the node if greater than 4096 bytes. The total message length across

                              all containers will be limited to 12kb.

                              Defaults to /dev/termination-log.

                              Cannot be updated.'
                            type: string
                          terminationMessagePolicy:
                            description: 'Indicate how the termination message should be populated. File will use the contents of

                              terminationMessagePath to populate the container status message on both success and failure.

                              FallbackToLogsOnError will use the last chunk of container log output if the termination

                              message file is empty and the container exited with an error.

                              The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                              Defaults to File.

                              Cannot be updated.'
                            type: string
                          tty:
                            description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                              Default is false.'
                            type: boolean
                          volumeDevices:
                            description: volumeDevices is the list of block devices to be used by the container.
                            items:
                              description: volumeDevice describes a mapping of a raw block device within a container.
                              properties:
                                devicePath:
                                  description: devicePath is the path inside of the container that the device will be mapped to.
                                  type: string
                                name:
                                  description: name must match the name of a persistentVolumeClaim in the pod
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            description: 'Pod volumes to mount into the container''s filesystem.

                              Cannot be updated.'
                            items:
                              description: VolumeMount describes a mounting of a Volume within a container.
                              properties:
                                mountPath:
                                  description: 'Path within the container at which the volume should be mounted.  Must

                                    not contain '':''.'
                                  type: string
                                mountPropagation:
                                  description: 'mountPropagation determines how mounts are propagated from the host

                                    to container and the other way around.

                                    When not set, MountPropagationNone is used.

                                    This field is beta in 1.10.

                                    When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                    (which defaults to None).'
                                  type: string
                                name:
                                  description: This must match the Name of a Volume.
                                  type: string
                                readOnly:
                                  description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                    Defaults to false.'
                                  type: boolean
                                recursiveReadOnly:
                                  description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                    recursively.


                                    If ReadOnly is false, this field has no meaning and must be unspecified.


                                    If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                    recursively read-only.  If this field is set to IfPossible, the mount is made

                                    recursively read-only, if it is supported by the container runtime.  If this

                                    field is set to Enabled, the mount is made recursively read-only if it is

                                    supported by the container runtime, otherwise the pod will not be started and

                                    an error will be generated to indicate the reason.


                                    If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                    None (or be unspecified, which defaults to None).


                                    If this field is not specified, it is treated as an equivalent of Disabled.'
                                  type: string
                                subPath:
                                  description: 'Path within the volume from which the container''s volume should be mounted.

                                    Defaults to "" (volume''s root).'
                                  type: string
                                subPathExpr:
                                  description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                    Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                    Defaults to "" (volume''s root).

                                    SubPathExpr and SubPath are mutually exclusive.'
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            description: 'Container''s working directory.

                              If not specified, the container runtime''s default will be used, which

                              might be configured in the container image.

                              Cannot be updated.'
                            type: string
                        required:
                        - name
                        type: object
                      type: array
                    inputs:
                      description: Inputs describe what inputs parameters and artifacts are supplied to this template
                      properties:
                        artifacts:
                          description: Artifact are a list of artifacts passed as inputs
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        parameters:
                          description: 'Parameters are a list of parameters passed as inputs

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          maxItems: 500
                          type: array
                      type: object
                    memoize:
                      description: Memoize allows templates to use outputs generated from already executed templates
                      properties:
                        cache:
                          description: Cache sets and configures the kind of cache
                          properties:
                            configMap:
                              description: ConfigMap sets a ConfigMap-based cache
                              properties:
                                name:
                                  default: ''
                                  description: 'Name of the referent.

                                    This field is effectively required, but due to backwards compatibility is

                                    allowed to be empty. Instances of this type with an empty value here are

                                    almost certainly wrong.

                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                  type: string
                              type: object
                              x-kubernetes-map-type: atomic
                          required:
                          - configMap
                          type: object
                        key:
                          description: Key is the key to use as the caching key
                          type: string
                        maxAge:
                          description: 'MaxAge is the maximum age (e.g. "180s", "24h") of an entry that is still considered valid. If an entry is older

                            than the MaxAge, it will be ignored.'
                          type: string
                      required:
                      - cache
                      - key
                      - maxAge
                      type: object
                    metadata:
                      description: Metadata sets the pods's metadata, i.e. annotations and labels
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    metrics:
                      description: Metrics are a list of metrics emitted from this template
                      properties:
                        prometheus:
                          description: 'Prometheus is a list of prometheus metrics to be emitted

                            MaxItems is an artificial limit to limit CEL validation costs - see note at top of file'
                          items:
                            description: Prometheus is a prometheus metric to be emitted
                            properties:
                              counter:
                                description: Counter is a counter metric
                                properties:
                                  value:
                                    description: Value is the value of the metric
                                    minLength: 1
                                    type: string
                                required:
                                - value
                                type: object
                              gauge:
                                description: Gauge is a gauge metric
                                properties:
                                  operation:
                                    description: Operation defines the operation to apply with value and the metrics' current value
                                    enum:
                                    - Set
                                    - Add
                                    - Sub
                                    type: string
                                  realtime:
                                    description: Realtime emits this metric in real time if applicable
                                    type: boolean
                                  value:
                                    description: 'Value is the value to be used in the operation with the metric''s current value. If no operation is set,

                                      value is the value of the metric

                                      MaxLength is an artificial limit to limit CEL validation costs - see note at top of file'
                                    maxLength: 256
                                    minLength: 1
                                    type: string
                                required:
                                - realtime
                                - value
                                type: object
                                x-kubernetes-validations:
                                - message: '''resourcesDuration.*'' metrics cannot be used in real-time gauges'
                                  rule: '!has(self.realtime) || !self.realtime || !self.value.contains(''resourcesDuration.'')'
                              help:
                                description: Help is a string that describes the metric
                                minLength: 1
                                type: string
                              histogram:
                                description: Histogram is a histogram metric
                                properties:
                                  buckets:
                                    description: Buckets is a list of bucket divisors for the histogram
                                    items:
                                      type: number
                                    type: array
                                  value:
                                    description: Value is the value of the metric
                                    minLength: 1
                                    type: string
                                required:
                                - buckets
                                - value
                                type: object
                              labels:
                                description: Labels is a list of metric labels
                                items:
                                  description: MetricLabel is a single label for a prometheus metric
                                  properties:
                                    key:
                                      pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - key
                                  - value
                                  type: object
                                type: array
                              name:
                                description: Name is the name of the metric
                                pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
                                type: string
                              when:
                                description: When is a conditional statement that decides when to emit the metric
                                type: string
                            required:
                            - help
                            - name
                            type: object
                          maxItems: 100
                          type: array
                      required:
                      - prometheus
                      type: object
                    name:
                      description: Name is the name of the template
                      maxLength: 128
                      pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                      type: string
                    nodeSelector:
                      additionalProperties:
                        type: string
                      description: 'NodeSelector is a selector to schedule this step of the workflow to be

                        run on the selected node(s). Overrides the selector set at the workflow level.'
                      type: object
                    outputs:
                      description: Outputs describe the parameters and artifacts that this template produces
                      properties:
                        artifacts:
                          description: Artifacts holds the list of output artifacts produced by a step
                          items:
                            description: Artifact indicates an artifact to place at a specified path
                            properties:
                              archive:
                                description: Archive controls how the artifact will be saved to the artifact repository.
                                properties:
                                  none:
                                    description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                      files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                      save/load the directory appropriately.'
                                    type: object
                                  tar:
                                    description: TarStrategy will tar and gzip the file or directory when saving
                                    properties:
                                      compressionLevel:
                                        description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                          Defaults to gzip.DefaultCompression.'
                                        format: int32
                                        type: integer
                                    type: object
                                  zip:
                                    description: ZipStrategy will unzip zipped input artifacts
                                    type: object
                                type: object
                              archiveLogs:
                                description: ArchiveLogs indicates if the container logs should be archived
                                type: boolean
                              artifactGC:
                                description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                properties:
                                  podMetadata:
                                    description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  serviceAccountName:
                                    description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                    type: string
                                  strategy:
                                    description: Strategy is the strategy to use.
                                    enum:
                                    - ''
                                    - OnWorkflowCompletion
                                    - OnWorkflowDeletion
                                    - Never
                                    type: string
                                type: object
                              artifactory:
                                description: Artifactory contains artifactory artifact location details
                                properties:
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  url:
                                    description: URL of the artifact
                                    type: string
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - url
                                type: object
                              azure:
                                description: Azure contains Azure Storage artifact location details
                                properties:
                                  accountKeySecret:
                                    description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  blob:
                                    description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                    type: string
                                  container:
                                    description: Container is the container where resources will be stored
                                    type: string
                                  endpoint:
                                    description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - blob
                                - container
                                - endpoint
                                type: object
                              deleted:
                                description: Has this been deleted?
                                type: boolean
                              from:
                                description: From allows an artifact to reference an artifact from a previous step
                                type: string
                              fromExpression:
                                description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                type: string
                              gcs:
                                description: GCS contains GCS artifact location details
                                properties:
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  serviceAccountKeySecret:
                                    description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - key
                                type: object
                              git:
                                description: Git contains git artifact location details
                                properties:
                                  branch:
                                    description: Branch is the branch to fetch when `SingleBranch` is enabled
                                    type: string
                                  depth:
                                    description: 'Depth specifies clones/fetches should be shallow and include the given

                                      number of commits from the branch tip'
                                    format: int64
                                    type: integer
                                  disableSubmodules:
                                    description: DisableSubmodules disables submodules during git clone
                                    type: boolean
                                  fetch:
                                    description: Fetch specifies a number of refs that should be fetched before checkout
                                    items:
                                      type: string
                                    type: array
                                  insecureIgnoreHostKey:
                                    description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                    type: boolean
                                  insecureSkipTLS:
                                    description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                    type: boolean
                                  passwordSecret:
                                    description: PasswordSecret is the secret selector to the repository password
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  repo:
                                    description: Repo is the git repository
                                    type: string
                                  revision:
                                    description: Revision is the git commit, tag, branch to checkout
                                    type: string
                                  singleBranch:
                                    description: SingleBranch enables single branch clone, using the `branch` parameter
                                    type: boolean
                                  sshPrivateKeySecret:
                                    description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  usernameSecret:
                                    description: UsernameSecret is the secret selector to the repository username
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                required:
                                - repo
                                type: object
                              globalName:
                                description: 'GlobalName exports an output artifact to the global scope, making it available as

                                  ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                type: string
                              hdfs:
                                description: HDFS contains HDFS artifact location details
                                properties:
                                  addresses:
                                    description: Addresses is accessible addresses of HDFS name nodes
                                    items:
                                      type: string
                                    type: array
                                  dataTransferProtection:
                                    description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                      It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                    type: string
                                  force:
                                    description: Force copies a file forcibly even if it exists
                                    type: boolean
                                  hdfsUser:
                                    description: 'HDFSUser is the user to access HDFS file system.

                                      It is ignored if either ccache or keytab is used.'
                                    type: string
                                  krbCCacheSecret:
                                    description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbConfigConfigMap:
                                    description: 'KrbConfig is the configmap selector for Kerberos config as string

                                      It must be set if either ccache or keytab is used.'
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbKeytabSecret:
                                    description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                      Either ccache or keytab can be set to use Kerberos.'
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  krbRealm:
                                    description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  krbServicePrincipalName:
                                    description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                      It must be set if either ccache or keytab is used.'
                                    type: string
                                  krbUsername:
                                    description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                      It must be set if keytab is used.'
                                    type: string
                                  path:
                                    description: Path is a file path in HDFS
                                    type: string
                                required:
                                - path
                                type: object
                              http:
                                description: HTTP contains HTTP artifact location details
                                properties:
                                  auth:
                                    description: Auth contains information for client authentication
                                    properties:
                                      basicAuth:
                                        description: BasicAuth describes the secret selectors required for basic authentication
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      clientCert:
                                        description: ClientCertAuth holds necessary information for client authentication via certificates
                                        properties:
                                          clientCertSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientKeySecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                      oauth2:
                                        description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                        properties:
                                          clientIDSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          clientSecretSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          endpointParams:
                                            items:
                                              description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                              properties:
                                                key:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            type: array
                                          scopes:
                                            items:
                                              type: string
                                            type: array
                                          tokenURLSecret:
                                            description: SecretKeySelector selects a key of a Secret.
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        type: object
                                    type: object
                                  headers:
                                    description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                    items:
                                      description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                      properties:
                                        name:
                                          description: Name is the header name
                                          type: string
                                        value:
                                          description: Value is the literal value to use for the header
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  url:
                                    description: URL of the artifact
                                    type: string
                                required:
                                - url
                                type: object
                              mode:
                                description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                  Set when loading input artifacts. It is recommended to set the mode value

                                  to ensure the artifact has the expected permissions in your container.'
                                format: int32
                                maximum: 511
                                minimum: 0
                                type: integer
                              name:
                                description: name of the artifact. must be unique within a template's inputs/outputs.
                                pattern: ^[-a-zA-Z0-9_{}.]+$
                                type: string
                              optional:
                                description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                type: boolean
                              oss:
                                description: OSS contains OSS artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                    type: boolean
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  key:
                                    description: Key is the path in the bucket where the artifact resides
                                    type: string
                                  lifecycleRule:
                                    description: LifecycleRule specifies how to manage bucket's lifecycle
                                    properties:
                                      markDeletionAfterDays:
                                        description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                        format: int32
                                        type: integer
                                      markInfrequentAccessAfterDays:
                                        description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                        format: int32
                                        type: integer
                                    type: object
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  securityToken:
                                    description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                    type: string
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                required:
                                - key
                                type: object
                              path:
                                description: Path is the container path to the artifact
                                type: string
                              plugin:
                                description: Plugin contains plugin artifact location details
                                properties:
                                  configuration:
                                    description: Configuration is the plugin defined configuration for the artifact driver plugin
                                    type: string
                                  connectionTimeoutSeconds:
                                    description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                    format: int32
                                    type: integer
                                  key:
                                    description: Key is the path in the artifact repository where the artifact resides
                                    type: string
                                  name:
                                    description: Name is the name of the artifact driver plugin
                                    type: string
                                required:
                                - key
                                type: object
                              raw:
                                description: Raw contains raw artifact location details
                                properties:
                                  data:
                                    description: Data is the string contents of the artifact
                                    type: string
                                required:
                                - data
                                type: object
                              recurseMode:
                                description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                type: boolean
                              s3:
                                description: S3 contains S3 artifact location details
                                properties:
                                  accessKeySecret:
                                    description: AccessKeySecret is the secret selector to the bucket's access key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  bucket:
                                    description: Bucket is the name of the bucket
                                    type: string
                                  caSecret:
                                    description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  createBucketIfNotPresent:
                                    description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                    properties:
                                      objectLocking:
                                        description: ObjectLocking Enable object locking
                                        type: boolean
                                    type: object
                                  encryptionOptions:
                                    description: S3EncryptionOptions used to determine encryption options during s3 operations
                                    properties:
                                      enableEncryption:
                                        description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                        type: boolean
                                      kmsEncryptionContext:
                                        description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                        type: string
                                      kmsKeyId:
                                        description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                        type: string
                                      serverSideCustomerKeySecret:
                                        description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                        properties:
                                          key:
                                            description: The key of the secret to select from.  Must be a valid secret key.
                                            type: string
                                          name:
                                            default: ''
                                            description: 'Name of the referent.

                                              This field is effectively required, but due to backwards compatibility is

                                              allowed to be empty. Instances of this type with an empty value here are

                                              almost certainly wrong.

                                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                            type: string
                                          optional:
                                            description: Specify whether the Secret or its key must be defined
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                        x-kubernetes-map-type: atomic
                                    type: object
                                  endpoint:
                                    description: Endpoint is the hostname of the bucket endpoint
                                    type: string
                                  insecure:
                                    description: Insecure will connect to the service with TLS
                                    type: boolean
                                  key:
                                    description: Key is the key in the bucket where the artifact resides
                                    type: string
                                  region:
                                    description: Region contains the optional bucket region
                                    type: string
                                  roleARN:
                                    description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                    type: string
                                  secretKeySecret:
                                    description: SecretKeySecret is the secret selector to the bucket's secret key
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  sessionTokenSecret:
                                    description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  useSDKCreds:
                                    description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                    type: boolean
                                type: object
                              subPath:
                                description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                type: string
                            required:
                            - name
                            type: object
                            x-kubernetes-validations:
                            - message: at most one artifact location can be specified
                              rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          type: array
                        exitCode:
                          description: ExitCode holds the exit code of a script template
                          type: string
                        parameters:
                          description: Parameters holds the list of output parameters produced by a step
                          items:
                            description: Parameter indicate a passed string parameter to a service template with an optional default value
                            properties:
                              default:
                                description: Default is the default value to use for an input parameter if a value was not supplied
                                type: string
                              description:
                                description: Description is the parameter description
                                type: string
                              enum:
                                description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                items:
                                  description: '* It''s JSON type is just string.

                                    * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                    * It will marshall back to string - marshalling is not symmetric.'
                                  type: string
                                minItems: 1
                                type: array
                              globalName:
                                description: 'GlobalName exports an output parameter to the global scope, making it available as

                                  ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                type: string
                              name:
                                description: Name is the parameter name
                                pattern: ^[-a-zA-Z0-9_]+$
                                type: string
                              value:
                                description: 'Value is the literal value to use for the parameter.

                                  If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                type: string
                              valueFrom:
                                description: ValueFrom is the source for the output parameter's value
                                properties:
                                  configMapKeyRef:
                                    description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  default:
                                    description: Default specifies a value to be used if retrieving the value from the specified source fails
                                    type: string
                                  event:
                                    description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                    type: string
                                  expression:
                                    description: Expression, if defined, is evaluated to specify the value for the parameter
                                    type: string
                                  jqFilter:
                                    description: JQFilter expression against the resource object in resource templates
                                    type: string
                                  jsonPath:
                                    description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                    type: string
                                  parameter:
                                    description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                      (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                    type: string
                                  path:
                                    description: Path in the container to retrieve an output parameter value from in container templates
                                    type: string
                                  supplied:
                                    description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                    type: object
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                        result:
                          description: Result holds the result (stdout) of a script or container template, or the response body of an HTTP template
                          type: string
                      type: object
                    parallelism:
                      description: 'Parallelism limits the max total parallel pods that can execute at the same time within the

                        boundaries of this template invocation. If additional steps/dag templates are invoked, the

                        pods created by those templates will not be counted towards this total.'
                      format: int64
                      minimum: 1
                      type: integer
                    plugin:
                      description: 'Plugin is a plugin template

                        Note: the structure of a plugin template is free-form, so we need to have

                        "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                      type: object
                      x-kubernetes-preserve-unknown-fields: true
                    podSpecPatch:
                      description: 'PodSpecPatch holds strategic merge patch to apply against the pod spec. Allows parameterization of

                        container fields which are not strings (e.g. resource limits).'
                      type: string
                    priorityClassName:
                      description: PriorityClassName to apply to workflow pods.
                      type: string
                    resource:
                      description: Resource template subtype which can run k8s resources
                      properties:
                        action:
                          description: 'Action is the action to perform to the resource.

                            Must be one of: get, create, apply, delete, replace, patch'
                          enum:
                          - get
                          - create
                          - apply
                          - delete
                          - replace
                          - patch
                          type: string
                        failureCondition:
                          description: 'FailureCondition is a label selector expression which describes the conditions

                            of the k8s resource in which the step was considered failed'
                          type: string
                        flags:
                          description: "Flags is a set of additional options passed to kubectl before submitting a resource\nI.e. to disable resource validation:\nflags: [\n\t\"--validate=false\"  # disable resource validation\n]"
                          items:
                            type: string
                          type: array
                        manifest:
                          description: Manifest contains the kubernetes manifest
                          type: string
                        manifestFrom:
                          description: ManifestFrom is the source for a single kubernetes manifest
                          properties:
                            artifact:
                              description: Artifact contains the artifact to use
                              properties:
                                archive:
                                  description: Archive controls how the artifact will be saved to the artifact repository.
                                  properties:
                                    none:
                                      description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                        files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                        save/load the directory appropriately.'
                                      type: object
                                    tar:
                                      description: TarStrategy will tar and gzip the file or directory when saving
                                      properties:
                                        compressionLevel:
                                          description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                            Defaults to gzip.DefaultCompression.'
                                          format: int32
                                          type: integer
                                      type: object
                                    zip:
                                      description: ZipStrategy will unzip zipped input artifacts
                                      type: object
                                  type: object
                                archiveLogs:
                                  description: ArchiveLogs indicates if the container logs should be archived
                                  type: boolean
                                artifactGC:
                                  description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                  properties:
                                    podMetadata:
                                      description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                      properties:
                                        annotations:
                                          additionalProperties:
                                            type: string
                                          type: object
                                        labels:
                                          additionalProperties:
                                            type: string
                                          type: object
                                      type: object
                                    serviceAccountName:
                                      description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                      type: string
                                    strategy:
                                      description: Strategy is the strategy to use.
                                      enum:
                                      - ''
                                      - OnWorkflowCompletion
                                      - OnWorkflowDeletion
                                      - Never
                                      type: string
                                  type: object
                                artifactory:
                                  description: Artifactory contains artifactory artifact location details
                                  properties:
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    url:
                                      description: URL of the artifact
                                      type: string
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - url
                                  type: object
                                azure:
                                  description: Azure contains Azure Storage artifact location details
                                  properties:
                                    accountKeySecret:
                                      description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    blob:
                                      description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                      type: string
                                    container:
                                      description: Container is the container where resources will be stored
                                      type: string
                                    endpoint:
                                      description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - blob
                                  - container
                                  - endpoint
                                  type: object
                                deleted:
                                  description: Has this been deleted?
                                  type: boolean
                                from:
                                  description: From allows an artifact to reference an artifact from a previous step
                                  type: string
                                fromExpression:
                                  description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                  type: string
                                gcs:
                                  description: GCS contains GCS artifact location details
                                  properties:
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    serviceAccountKeySecret:
                                      description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - key
                                  type: object
                                git:
                                  description: Git contains git artifact location details
                                  properties:
                                    branch:
                                      description: Branch is the branch to fetch when `SingleBranch` is enabled
                                      type: string
                                    depth:
                                      description: 'Depth specifies clones/fetches should be shallow and include the given

                                        number of commits from the branch tip'
                                      format: int64
                                      type: integer
                                    disableSubmodules:
                                      description: DisableSubmodules disables submodules during git clone
                                      type: boolean
                                    fetch:
                                      description: Fetch specifies a number of refs that should be fetched before checkout
                                      items:
                                        type: string
                                      type: array
                                    insecureIgnoreHostKey:
                                      description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                      type: boolean
                                    insecureSkipTLS:
                                      description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                      type: boolean
                                    passwordSecret:
                                      description: PasswordSecret is the secret selector to the repository password
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    repo:
                                      description: Repo is the git repository
                                      type: string
                                    revision:
                                      description: Revision is the git commit, tag, branch to checkout
                                      type: string
                                    singleBranch:
                                      description: SingleBranch enables single branch clone, using the `branch` parameter
                                      type: boolean
                                    sshPrivateKeySecret:
                                      description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    usernameSecret:
                                      description: UsernameSecret is the secret selector to the repository username
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - repo
                                  type: object
                                globalName:
                                  description: 'GlobalName exports an output artifact to the global scope, making it available as

                                    ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                  type: string
                                hdfs:
                                  description: HDFS contains HDFS artifact location details
                                  properties:
                                    addresses:
                                      description: Addresses is accessible addresses of HDFS name nodes
                                      items:
                                        type: string
                                      type: array
                                    dataTransferProtection:
                                      description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                        It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                      type: string
                                    force:
                                      description: Force copies a file forcibly even if it exists
                                      type: boolean
                                    hdfsUser:
                                      description: 'HDFSUser is the user to access HDFS file system.

                                        It is ignored if either ccache or keytab is used.'
                                      type: string
                                    krbCCacheSecret:
                                      description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbConfigConfigMap:
                                      description: 'KrbConfig is the configmap selector for Kerberos config as string

                                        It must be set if either ccache or keytab is used.'
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbKeytabSecret:
                                      description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                        Either ccache or keytab can be set to use Kerberos.'
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    krbRealm:
                                      description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    krbServicePrincipalName:
                                      description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                        It must be set if either ccache or keytab is used.'
                                      type: string
                                    krbUsername:
                                      description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                        It must be set if keytab is used.'
                                      type: string
                                    path:
                                      description: Path is a file path in HDFS
                                      type: string
                                  required:
                                  - path
                                  type: object
                                http:
                                  description: HTTP contains HTTP artifact location details
                                  properties:
                                    auth:
                                      description: Auth contains information for client authentication
                                      properties:
                                        basicAuth:
                                          description: BasicAuth describes the secret selectors required for basic authentication
                                          properties:
                                            passwordSecret:
                                              description: PasswordSecret is the secret selector to the repository password
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            usernameSecret:
                                              description: UsernameSecret is the secret selector to the repository username
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        clientCert:
                                          description: ClientCertAuth holds necessary information for client authentication via certificates
                                          properties:
                                            clientCertSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientKeySecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                        oauth2:
                                          description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                          properties:
                                            clientIDSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            clientSecretSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                            endpointParams:
                                              items:
                                                description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                properties:
                                                  key:
                                                    description: Name is the header name
                                                    type: string
                                                  value:
                                                    description: Value is the literal value to use for the header
                                                    type: string
                                                required:
                                                - key
                                                type: object
                                              type: array
                                            scopes:
                                              items:
                                                type: string
                                              type: array
                                            tokenURLSecret:
                                              description: SecretKeySelector selects a key of a Secret.
                                              properties:
                                                key:
                                                  description: The key of the secret to select from.  Must be a valid secret key.
                                                  type: string
                                                name:
                                                  default: ''
                                                  description: 'Name of the referent.

                                                    This field is effectively required, but due to backwards compatibility is

                                                    allowed to be empty. Instances of this type with an empty value here are

                                                    almost certainly wrong.

                                                    More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                  type: string
                                                optional:
                                                  description: Specify whether the Secret or its key must be defined
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                              x-kubernetes-map-type: atomic
                                          type: object
                                      type: object
                                    headers:
                                      description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                      items:
                                        description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                        properties:
                                          name:
                                            description: Name is the header name
                                            type: string
                                          value:
                                            description: Value is the literal value to use for the header
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    url:
                                      description: URL of the artifact
                                      type: string
                                  required:
                                  - url
                                  type: object
                                mode:
                                  description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                    Set when loading input artifacts. It is recommended to set the mode value

                                    to ensure the artifact has the expected permissions in your container.'
                                  format: int32
                                  maximum: 511
                                  minimum: 0
                                  type: integer
                                name:
                                  description: name of the artifact. must be unique within a template's inputs/outputs.
                                  pattern: ^[-a-zA-Z0-9_{}.]+$
                                  type: string
                                optional:
                                  description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                  type: boolean
                                oss:
                                  description: OSS contains OSS artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                      type: boolean
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    key:
                                      description: Key is the path in the bucket where the artifact resides
                                      type: string
                                    lifecycleRule:
                                      description: LifecycleRule specifies how to manage bucket's lifecycle
                                      properties:
                                        markDeletionAfterDays:
                                          description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                          format: int32
                                          type: integer
                                        markInfrequentAccessAfterDays:
                                          description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                          format: int32
                                          type: integer
                                      type: object
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    securityToken:
                                      description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                      type: string
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  required:
                                  - key
                                  type: object
                                path:
                                  description: Path is the container path to the artifact
                                  type: string
                                plugin:
                                  description: Plugin contains plugin artifact location details
                                  properties:
                                    configuration:
                                      description: Configuration is the plugin defined configuration for the artifact driver plugin
                                      type: string
                                    connectionTimeoutSeconds:
                                      description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                      format: int32
                                      type: integer
                                    key:
                                      description: Key is the path in the artifact repository where the artifact resides
                                      type: string
                                    name:
                                      description: Name is the name of the artifact driver plugin
                                      type: string
                                  required:
                                  - key
                                  type: object
                                raw:
                                  description: Raw contains raw artifact location details
                                  properties:
                                    data:
                                      description: Data is the string contents of the artifact
                                      type: string
                                  required:
                                  - data
                                  type: object
                                recurseMode:
                                  description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                  type: boolean
                                s3:
                                  description: S3 contains S3 artifact location details
                                  properties:
                                    accessKeySecret:
                                      description: AccessKeySecret is the secret selector to the bucket's access key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    bucket:
                                      description: Bucket is the name of the bucket
                                      type: string
                                    caSecret:
                                      description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    createBucketIfNotPresent:
                                      description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                      properties:
                                        objectLocking:
                                          description: ObjectLocking Enable object locking
                                          type: boolean
                                      type: object
                                    encryptionOptions:
                                      description: S3EncryptionOptions used to determine encryption options during s3 operations
                                      properties:
                                        enableEncryption:
                                          description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                          type: boolean
                                        kmsEncryptionContext:
                                          description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                          type: string
                                        kmsKeyId:
                                          description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                          type: string
                                        serverSideCustomerKeySecret:
                                          description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                          properties:
                                            key:
                                              description: The key of the secret to select from.  Must be a valid secret key.
                                              type: string
                                            name:
                                              default: ''
                                              description: 'Name of the referent.

                                                This field is effectively required, but due to backwards compatibility is

                                                allowed to be empty. Instances of this type with an empty value here are

                                                almost certainly wrong.

                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                              type: string
                                            optional:
                                              description: Specify whether the Secret or its key must be defined
                                              type: boolean
                                          required:
                                          - key
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      type: object
                                    endpoint:
                                      description: Endpoint is the hostname of the bucket endpoint
                                      type: string
                                    insecure:
                                      description: Insecure will connect to the service with TLS
                                      type: boolean
                                    key:
                                      description: Key is the key in the bucket where the artifact resides
                                      type: string
                                    region:
                                      description: Region contains the optional bucket region
                                      type: string
                                    roleARN:
                                      description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                      type: string
                                    secretKeySecret:
                                      description: SecretKeySecret is the secret selector to the bucket's secret key
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    sessionTokenSecret:
                                      description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    useSDKCreds:
                                      description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                      type: boolean
                                  type: object
                                subPath:
                                  description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                  type: string
                              required:
                              - name
                              type: object
                              x-kubernetes-validations:
                              - message: at most one artifact location can be specified
                                rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                          required:
                          - artifact
                          type: object
                        mergeStrategy:
                          description: 'MergeStrategy is the strategy used to merge a patch. It defaults to "strategic"

                            Must be one of: strategic, merge, json'
                          enum:
                          - strategic
                          - merge
                          - json
                          type: string
                        setOwnerReference:
                          description: SetOwnerReference sets the reference to the workflow on the OwnerReference of generated resource.
                          type: boolean
                        successCondition:
                          description: 'SuccessCondition is a label selector expression which describes the conditions

                            of the k8s resource in which it is acceptable to proceed to the following step'
                          type: string
                      required:
                      - action
                      type: object
                      x-kubernetes-validations:
                      - message: only one of manifest or manifestFrom can be specified
                        rule: (has(self.manifest) && !has(self.manifestFrom)) || (!has(self.manifest) && has(self.manifestFrom)) || (!has(self.manifest) && !has(self.manifestFrom))
                    retryStrategy:
                      description: RetryStrategy describes how to retry a template when it fails
                      properties:
                        affinity:
                          description: Affinity prevents running workflow's step on the same host
                          properties:
                            nodeAntiAffinity:
                              description: 'RetryNodeAntiAffinity is a placeholder for future expansion, only empty nodeAntiAffinity is allowed.

                                In order to prevent running steps on the same host, it uses "kubernetes.io/hostname".'
                              type: object
                          type: object
                        backoff:
                          description: Backoff is a backoff strategy
                          properties:
                            cap:
                              description: 'Cap is a limit on revised values of the duration parameter. If a

                                multiplication by the factor parameter would make the duration

                                exceed the cap then the duration is set to the cap'
                              type: string
                            duration:
                              description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
                              type: string
                            factor:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Factor is a factor to multiply the base duration after each failed retry
                              x-kubernetes-int-or-string: true
                            maxDuration:
                              description: 'MaxDuration is the maximum amount of time allowed for a workflow in the backoff strategy.

                                It is important to note that if the workflow template includes activeDeadlineSeconds, the pod''s deadline is initially set with activeDeadlineSeconds.

                                However, when the workflow fails, the pod''s deadline is then overridden by maxDuration.

                                This ensures that the workflow does not exceed the specified maximum duration when retries are involved.'
                              type: string
                          type: object
                        expression:
                          description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                            be retried and the retry strategy will be ignored'
                          type: string
                        limit:
                          anyOf:
                          - type: integer
                          - type: string
                          description: 'Limit is the maximum number of retry attempts when retrying a container. It does not include the original

                            container; the maximum number of total attempts will be `limit + 1`.'
                          x-kubernetes-int-or-string: true
                        retryPolicy:
                          description: RetryPolicy is a policy of NodePhase statuses that will be retried
                          enum:
                          - Always
                          - OnFailure
                          - OnError
                          - OnTransientError
                          type: string
                      type: object
                    schedulerName:
                      description: 'If specified, the pod will be dispatched by specified scheduler.

                        Or it will be dispatched by workflow scope scheduler if specified.

                        If neither specified, the pod will be dispatched by default scheduler.'
                      type: string
                    script:
                      description: Script runs a portion of code against an interpreter
                      properties:
                        args:
                          description: 'Arguments to the entrypoint.

                            The container image''s CMD is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        command:
                          description: 'Entrypoint array. Not executed within a shell.

                            The container image''s ENTRYPOINT is used if this is not provided.

                            Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                            cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                            to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                            produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                            of whether the variable exists or not. Cannot be updated.

                            More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        env:
                          description: 'List of environment variables to set in the container.

                            Cannot be updated.'
                          items:
                            description: EnvVar represents an environment variable present in a Container.
                            properties:
                              name:
                                description: Name of the environment variable. Must be a C_IDENTIFIER.
                                type: string
                              value:
                                description: 'Variable references $(VAR_NAME) are expanded

                                  using the previously defined environment variables in the container and

                                  any service environment variables. If a variable cannot be resolved,

                                  the reference in the input string will be unchanged. Double $$ are reduced

                                  to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                  "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                  Escaped references will never be expanded, regardless of whether the variable

                                  exists or not.

                                  Defaults to "".'
                                type: string
                              valueFrom:
                                description: Source for the environment variable's value. Cannot be used if value is not empty.
                                properties:
                                  configMapKeyRef:
                                    description: Selects a key of a ConfigMap.
                                    properties:
                                      key:
                                        description: The key to select.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the ConfigMap or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  fieldRef:
                                    description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                      spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                    properties:
                                      apiVersion:
                                        description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                        type: string
                                      fieldPath:
                                        description: Path of the field to select in the specified API version.
                                        type: string
                                    required:
                                    - fieldPath
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  resourceFieldRef:
                                    description: 'Selects a resource of the container: only resources limits and requests

                                      (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                    properties:
                                      containerName:
                                        description: 'Container name: required for volumes, optional for env vars'
                                        type: string
                                      divisor:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Specifies the output format of the exposed resources, defaults to "1"
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      resource:
                                        description: 'Required: resource to select'
                                        type: string
                                    required:
                                    - resource
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  secretKeyRef:
                                    description: Selects a key of a secret in the pod's namespace
                                    properties:
                                      key:
                                        description: The key of the secret to select from.  Must be a valid secret key.
                                        type: string
                                      name:
                                        default: ''
                                        description: 'Name of the referent.

                                          This field is effectively required, but due to backwards compatibility is

                                          allowed to be empty. Instances of this type with an empty value here are

                                          almost certainly wrong.

                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                        type: string
                                      optional:
                                        description: Specify whether the Secret or its key must be defined
                                        type: boolean
                                    required:
                                    - key
                                    type: object
                                    x-kubernetes-map-type: atomic
                                type: object
                            required:
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - name
                          x-kubernetes-list-type: map
                        envFrom:
                          description: 'List of sources to populate environment variables in the container.

                            The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                            will be reported as an event when the container is starting. When a key exists in multiple

                            sources, the value associated with the last source will take precedence.

                            Values defined by an Env with a duplicate key will take precedence.

                            Cannot be updated.'
                          items:
                            description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                            properties:
                              configMapRef:
                                description: The ConfigMap to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              prefix:
                                description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                type: string
                              secretRef:
                                description: The Secret to select from
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the Secret must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        image:
                          description: 'Container image name.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                        imagePullPolicy:
                          description: 'Image pull policy.

                            One of Always, Never, IfNotPresent.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                          type: string
                        lifecycle:
                          description: 'Actions that the management system should take in response to container lifecycle events.

                            Cannot be updated.'
                          properties:
                            postStart:
                              description: 'PostStart is called immediately after a container is created. If the handler fails,

                                the container is terminated and restarted according to its restart policy.

                                Other management of the container blocks until the hook completes.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            preStop:
                              description: 'PreStop is called immediately before a container is terminated due to an

                                API request or management event such as liveness/startup probe failure,

                                preemption, resource contention, etc. The handler is not called if the

                                container crashes or exits. The Pod''s termination grace period countdown begins before the

                                PreStop hook is executed. Regardless of the outcome of the handler, the

                                container will eventually terminate within the Pod''s termination grace

                                period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                or until the termination grace period is reached.

                                More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                              properties:
                                exec:
                                  description: Exec specifies a command to execute in the container.
                                  properties:
                                    command:
                                      description: 'Command is the command line to execute inside the container, the working directory for the

                                        command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                        not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                        a shell, you need to explicitly call out to that shell.

                                        Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: atomic
                                  type: object
                                httpGet:
                                  description: HTTPGet specifies an HTTP GET request to perform.
                                  properties:
                                    host:
                                      description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                        "Host" in httpHeaders instead.'
                                      type: string
                                    httpHeaders:
                                      description: Custom headers to set in the request. HTTP allows repeated headers.
                                      items:
                                        description: HTTPHeader describes a custom header to be used in HTTP probes
                                        properties:
                                          name:
                                            description: 'The header field name.

                                              This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                            type: string
                                          value:
                                            description: The header field value
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    path:
                                      description: Path to access on the HTTP server.
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Name or number of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                    scheme:
                                      description: 'Scheme to use for connecting to the host.

                                        Defaults to HTTP.'
                                      type: string
                                  required:
                                  - port
                                  type: object
                                sleep:
                                  description: Sleep represents a duration that the container should sleep.
                                  properties:
                                    seconds:
                                      description: Seconds is the number of seconds to sleep.
                                      format: int64
                                      type: integer
                                  required:
                                  - seconds
                                  type: object
                                tcpSocket:
                                  description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                    for backward compatibility. There is no validation of this field and

                                    lifecycle hooks will fail at runtime when it is specified.'
                                  properties:
                                    host:
                                      description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                      type: string
                                    port:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'Number or name of the port to access on the container.

                                        Number must be in the range 1 to 65535.

                                        Name must be an IANA_SVC_NAME.'
                                      x-kubernetes-int-or-string: true
                                  required:
                                  - port
                                  type: object
                              type: object
                            stopSignal:
                              description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                If not specified, the default is defined by the container runtime in use.

                                StopSignal can only be set for Pods with a non-empty .spec.os.name'
                              type: string
                          type: object
                        livenessProbe:
                          description: 'Periodic probe of container liveness.

                            Container will be restarted if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        name:
                          description: 'Name of the container specified as a DNS_LABEL.

                            Each container in a pod must have a unique name (DNS_LABEL).

                            Cannot be updated.'
                          type: string
                        ports:
                          description: 'List of ports to expose from the container. Not specifying a port here

                            DOES NOT prevent that port from being exposed. Any port which is

                            listening on the default "0.0.0.0" address inside a container will be

                            accessible from the network.

                            Modifying this array with strategic merge patch may corrupt the data.

                            For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                            Cannot be updated.'
                          items:
                            description: ContainerPort represents a network port in a single container.
                            properties:
                              containerPort:
                                description: 'Number of port to expose on the pod''s IP address.

                                  This must be a valid port number, 0 < x < 65536.'
                                format: int32
                                type: integer
                              hostIP:
                                description: What host IP to bind the external port to.
                                type: string
                              hostPort:
                                description: 'Number of port to expose on the host.

                                  If specified, this must be a valid port number, 0 < x < 65536.

                                  If HostNetwork is specified, this must match ContainerPort.

                                  Most containers do not need this.'
                                format: int32
                                type: integer
                              name:
                                description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                  named port in a pod must have a unique name. Name for the port that can be

                                  referred to by services.'
                                type: string
                              protocol:
                                default: TCP
                                description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                  Defaults to "TCP".'
                                type: string
                            required:
                            - containerPort
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - containerPort
                          - protocol
                          x-kubernetes-list-type: map
                        readinessProbe:
                          description: 'Periodic probe of container service readiness.

                            Container will be removed from service endpoints if the probe fails.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        resizePolicy:
                          description: Resources resize policy for the container.
                          items:
                            description: ContainerResizePolicy represents resource resize policy for the container.
                            properties:
                              resourceName:
                                description: 'Name of the resource to which this resource resize policy applies.

                                  Supported values: cpu, memory.'
                                type: string
                              restartPolicy:
                                description: 'Restart policy to apply when specified resource is resized.

                                  If not specified, it defaults to NotRequired.'
                                type: string
                            required:
                            - resourceName
                            - restartPolicy
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        resources:
                          description: 'Compute Resources required by this container.

                            Cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                          properties:
                            claims:
                              description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                that are used by this container.


                                This is an alpha field and requires enabling the

                                DynamicResourceAllocation feature gate.


                                This field is immutable. It can only be set for containers.'
                              items:
                                description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                properties:
                                  name:
                                    description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                      the Pod where this field is used. It makes that resource available

                                      inside a container.'
                                    type: string
                                  request:
                                    description: 'Request is the name chosen for a request in the referenced claim.

                                      If empty, everything from the claim is made available, otherwise

                                      only the result of this request.'
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                              x-kubernetes-list-map-keys:
                              - name
                              x-kubernetes-list-type: map
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        restartPolicy:
                          description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                            This field may only be set for init containers, and the only allowed value is "Always".

                            For non-init containers or when this field is not specified,

                            the restart behavior is defined by the Pod''s restart policy and the container type.

                            Setting the RestartPolicy as "Always" for the init container will have the following effect:

                            this init container will be continually restarted on

                            exit until all regular containers have terminated. Once all regular

                            containers have completed, all init containers with restartPolicy "Always"

                            will be shut down. This lifecycle differs from normal init containers and

                            is often referred to as a "sidecar" container. Although this init

                            container still starts in the init container sequence, it does not wait

                            for the container to complete before proceeding to the next init

                            container. Instead, the next init container starts immediately after this

                            init container is started, or after any startupProbe has successfully

                            completed.'
                          type: string
                        securityContext:
                          description: 'SecurityContext defines the security options the container should be run with.

                            If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                            More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                          properties:
                            allowPrivilegeEscalation:
                              description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                privileges than its parent process. This bool directly controls if

                                the no_new_privs flag will be set on the container process.

                                AllowPrivilegeEscalation is true always when the container is:

                                1) run as Privileged

                                2) has CAP_SYS_ADMIN

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            appArmorProfile:
                              description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                overrides the pod''s appArmorProfile.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must match the loaded name of the profile.

                                    Must be set if and only if type is "Localhost".'
                                  type: string
                                type:
                                  description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                  type: string
                              required:
                              - type
                              type: object
                            capabilities:
                              description: 'The capabilities to add/drop when running containers.

                                Defaults to the default set of capabilities granted by the container runtime.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                add:
                                  description: Added capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                drop:
                                  description: Removed capabilities
                                  items:
                                    description: Capability represent POSIX capabilities type
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            privileged:
                              description: 'Run container in privileged mode.

                                Processes in privileged containers are essentially equivalent to root on the host.

                                Defaults to false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            procMount:
                              description: 'procMount denotes the type of proc mount to use for the containers.

                                The default value is Default which uses the container runtime defaults for

                                readonly paths and masked paths.

                                This requires the ProcMountType feature flag to be enabled.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: string
                            readOnlyRootFilesystem:
                              description: 'Whether this container has a read-only root filesystem.

                                Default is false.

                                Note that this field cannot be set when spec.os.name is windows.'
                              type: boolean
                            runAsGroup:
                              description: 'The GID to run the entrypoint of the container process.

                                Uses runtime default if unset.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            runAsNonRoot:
                              description: 'Indicates that the container must run as a non-root user.

                                If true, the Kubelet will validate the image at runtime to ensure that it

                                does not run as UID 0 (root) and fail to start the container if it does.

                                If unset or false, no such validation will be performed.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: boolean
                            runAsUser:
                              description: 'The UID to run the entrypoint of the container process.

                                Defaults to user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              format: int64
                              type: integer
                            seLinuxOptions:
                              description: 'The SELinux context to be applied to the container.

                                If unspecified, the container runtime will allocate a random SELinux context for each

                                container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                level:
                                  description: Level is SELinux level label that applies to the container.
                                  type: string
                                role:
                                  description: Role is a SELinux role label that applies to the container.
                                  type: string
                                type:
                                  description: Type is a SELinux type label that applies to the container.
                                  type: string
                                user:
                                  description: User is a SELinux user label that applies to the container.
                                  type: string
                              type: object
                            seccompProfile:
                              description: 'The seccomp options to use by this container. If seccomp options are

                                provided at both the pod & container level, the container options

                                override the pod options.

                                Note that this field cannot be set when spec.os.name is windows.'
                              properties:
                                localhostProfile:
                                  description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                    The profile must be preconfigured on the node to work.

                                    Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                    Must be set if type is "Localhost". Must NOT be set for any other type.'
                                  type: string
                                type:
                                  description: 'type indicates which kind of seccomp profile will be applied.

                                    Valid options are:


                                    Localhost - a profile defined in a file on the node should be used.

                                    RuntimeDefault - the container runtime default profile should be used.

                                    Unconfined - no profile should be applied.'
                                  type: string
                              required:
                              - type
                              type: object
                            windowsOptions:
                              description: 'The Windows specific settings applied to all containers.

                                If unspecified, the options from the PodSecurityContext will be used.

                                If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                Note that this field cannot be set when spec.os.name is linux.'
                              properties:
                                gmsaCredentialSpec:
                                  description: 'GMSACredentialSpec is where the GMSA admission webhook

                                    (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                    GMSA credential spec named by the GMSACredentialSpecName field.'
                                  type: string
                                gmsaCredentialSpecName:
                                  description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                  type: string
                                hostProcess:
                                  description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                    All of a Pod''s containers must have the same effective HostProcess value

                                    (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                    In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                  type: boolean
                                runAsUserName:
                                  description: 'The UserName in Windows to run the entrypoint of the container process.

                                    Defaults to the user specified in image metadata if unspecified.

                                    May also be set in PodSecurityContext. If set in both SecurityContext and

                                    PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                  type: string
                              type: object
                          type: object
                        source:
                          description: Source contains the source code of the script to execute
                          type: string
                        startupProbe:
                          description: 'StartupProbe indicates that the Pod has successfully initialized.

                            If specified, no other probes are executed until this completes successfully.

                            If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                            This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                            when it might take a long time to load data or warm a cache, than during steady-state operation.

                            This cannot be updated.

                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: Exec specifies a command to execute in the container.
                              properties:
                                command:
                                  description: 'Command is the command line to execute inside the container, the working directory for the

                                    command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                    not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                    a shell, you need to explicitly call out to that shell.

                                    Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                              type: object
                            failureThreshold:
                              description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                Defaults to 3. Minimum value is 1.'
                              format: int32
                              type: integer
                            grpc:
                              description: GRPC specifies a GRPC HealthCheckRequest.
                              properties:
                                port:
                                  description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                  format: int32
                                  type: integer
                                service:
                                  default: ''
                                  description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                    (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                    If this is not specified, the default behavior is defined by gRPC.'
                                  type: string
                              required:
                              - port
                              type: object
                            httpGet:
                              description: HTTPGet specifies an HTTP GET request to perform.
                              properties:
                                host:
                                  description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                    "Host" in httpHeaders instead.'
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request. HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header to be used in HTTP probes
                                    properties:
                                      name:
                                        description: 'The header field name.

                                          This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                  x-kubernetes-list-type: atomic
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Name or number of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: 'Scheme to use for connecting to the host.

                                    Defaults to HTTP.'
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container has started before liveness probes are initiated.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: 'How often (in seconds) to perform the probe.

                                Default to 10 seconds. Minimum value is 1.'
                              format: int32
                              type: integer
                            successThreshold:
                              description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                              format: int32
                              type: integer
                            tcpSocket:
                              description: TCPSocket specifies a connection to a TCP port.
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number or name of the port to access on the container.

                                    Number must be in the range 1 to 65535.

                                    Name must be an IANA_SVC_NAME.'
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            terminationGracePeriodSeconds:
                              description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                The grace period is the duration in seconds after the processes running in the pod are sent

                                a termination signal and the time when the processes are forcibly halted with a kill signal.

                                Set this value longer than the expected cleanup time for your process.

                                If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                value overrides the value provided by the pod spec.

                                Value must be non-negative integer. The value zero indicates stop immediately via

                                the kill signal (no opportunity to shut down).

                                This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                              format: int64
                              type: integer
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe times out.

                                Defaults to 1 second. Minimum value is 1.

                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        stdin:
                          description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                            is not set, reads from stdin in the container will always result in EOF.

                            Default is false.'
                          type: boolean
                        stdinOnce:
                          description: 'Whether the container runtime should close the stdin channel after it has been opened by

                            a single attach. When stdin is true the stdin stream will remain open across multiple attach

                            sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                            first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                            at which time stdin is closed and remains closed until the container is restarted. If this

                            flag is false, a container processes that reads from stdin will never receive an EOF.

                            Default is false'
                          type: boolean
                        terminationMessagePath:
                          description: 'Optional: Path at which the file to which the container''s termination message

                            will be written is mounted into the container''s filesystem.

                            Message written is intended to be brief final status, such as an assertion failure message.

                            Will be truncated by the node if greater than 4096 bytes. The total message length across

                            all containers will be limited to 12kb.

                            Defaults to /dev/termination-log.

                            Cannot be updated.'
                          type: string
                        terminationMessagePolicy:
                          description: 'Indicate how the termination message should be populated. File will use the contents of

                            terminationMessagePath to populate the container status message on both success and failure.

                            FallbackToLogsOnError will use the last chunk of container log output if the termination

                            message file is empty and the container exited with an error.

                            The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                            Defaults to File.

                            Cannot be updated.'
                          type: string
                        tty:
                          description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                            Default is false.'
                          type: boolean
                        volumeDevices:
                          description: volumeDevices is the list of block devices to be used by the container.
                          items:
                            description: volumeDevice describes a mapping of a raw block device within a container.
                            properties:
                              devicePath:
                                description: devicePath is the path inside of the container that the device will be mapped to.
                                type: string
                              name:
                                description: name must match the name of a persistentVolumeClaim in the pod
                                type: string
                            required:
                            - devicePath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - devicePath
                          x-kubernetes-list-type: map
                        volumeMounts:
                          description: 'Pod volumes to mount into the container''s filesystem.

                            Cannot be updated.'
                          items:
                            description: VolumeMount describes a mounting of a Volume within a container.
                            properties:
                              mountPath:
                                description: 'Path within the container at which the volume should be mounted.  Must

                                  not contain '':''.'
                                type: string
                              mountPropagation:
                                description: 'mountPropagation determines how mounts are propagated from the host

                                  to container and the other way around.

                                  When not set, MountPropagationNone is used.

                                  This field is beta in 1.10.

                                  When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                  (which defaults to None).'
                                type: string
                              name:
                                description: This must match the Name of a Volume.
                                type: string
                              readOnly:
                                description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                  Defaults to false.'
                                type: boolean
                              recursiveReadOnly:
                                description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                  recursively.


                                  If ReadOnly is false, this field has no meaning and must be unspecified.


                                  If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                  recursively read-only.  If this field is set to IfPossible, the mount is made

                                  recursively read-only, if it is supported by the container runtime.  If this

                                  field is set to Enabled, the mount is made recursively read-only if it is

                                  supported by the container runtime, otherwise the pod will not be started and

                                  an error will be generated to indicate the reason.


                                  If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                  None (or be unspecified, which defaults to None).


                                  If this field is not specified, it is treated as an equivalent of Disabled.'
                                type: string
                              subPath:
                                description: 'Path within the volume from which the container''s volume should be mounted.

                                  Defaults to "" (volume''s root).'
                                type: string
                              subPathExpr:
                                description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                  Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                  Defaults to "" (volume''s root).

                                  SubPathExpr and SubPath are mutually exclusive.'
                                type: string
                            required:
                            - mountPath
                            - name
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - mountPath
                          x-kubernetes-list-type: map
                        workingDir:
                          description: 'Container''s working directory.

                            If not specified, the container runtime''s default will be used, which

                            might be configured in the container image.

                            Cannot be updated.'
                          type: string
                      type: object
                    securityContext:
                      description: 'SecurityContext holds pod-level security attributes and common container settings.

                        Optional: Defaults to empty.  See type description for default values of each field.'
                      properties:
                        appArmorProfile:
                          description: 'appArmorProfile is the AppArmor options to use by the containers in this pod.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            localhostProfile:
                              description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                The profile must be preconfigured on the node to work.

                                Must match the loaded name of the profile.

                                Must be set if and only if type is "Localhost".'
                              type: string
                            type:
                              description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                              type: string
                          required:
                          - type
                          type: object
                        fsGroup:
                          description: 'A special supplemental group that applies to all containers in a pod.

                            Some volume types allow the Kubelet to change the ownership of that volume

                            to be owned by the pod:


                            1. The owning GID will be the FSGroup

                            2. The setgid bit is set (new files created in the volume will be owned by FSGroup)

                            3. The permission bits are OR''d with rw-rw----


                            If unset, the Kubelet will not modify the ownership and permissions of any volume.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        fsGroupChangePolicy:
                          description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume

                            before being exposed inside Pod. This field will only apply to

                            volume types which support fsGroup based ownership(and permissions).

                            It will have no effect on ephemeral volume types such as: secret, configmaps

                            and emptydir.

                            Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        runAsGroup:
                          description: 'The GID to run the entrypoint of the container process.

                            Uses runtime default if unset.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence

                            for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        runAsNonRoot:
                          description: 'Indicates that the container must run as a non-root user.

                            If true, the Kubelet will validate the image at runtime to ensure that it

                            does not run as UID 0 (root) and fail to start the container if it does.

                            If unset or false, no such validation will be performed.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence.'
                          type: boolean
                        runAsUser:
                          description: 'The UID to run the entrypoint of the container process.

                            Defaults to user specified in image metadata if unspecified.

                            May also be set in SecurityContext.  If set in both SecurityContext and

                            PodSecurityContext, the value specified in SecurityContext takes precedence

                            for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          format: int64
                          type: integer
                        seLinuxChangePolicy:
                          description: 'seLinuxChangePolicy defines how the container''s SELinux label is applied to all volumes used by the Pod.

                            It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.

                            Valid values are "MountOption" and "Recursive".


                            "Recursive" means relabeling of all files on all Pod volumes by the container runtime.

                            This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.


                            "MountOption" mounts all eligible Pod volumes with `-o context` mount option.

                            This requires all Pods that share the same volume to use the same SELinux label.

                            It is not possible to share the same volume among privileged and unprivileged Pods.

                            Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes

                            whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their

                            CSIDriver instance. Other volumes are always re-labelled recursively.

                            "MountOption" value is allowed only when SELinuxMount feature gate is enabled.


                            If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.

                            If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes

                            and "Recursive" for all other volumes.


                            This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.


                            All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        seLinuxOptions:
                          description: 'The SELinux context to be applied to all containers.

                            If unspecified, the container runtime will allocate a random SELinux context for each

                            container.  May also be set in SecurityContext.  If set in

                            both SecurityContext and PodSecurityContext, the value specified in SecurityContext

                            takes precedence for that container.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            level:
                              description: Level is SELinux level label that applies to the container.
                              type: string
                            role:
                              description: Role is a SELinux role label that applies to the container.
                              type: string
                            type:
                              description: Type is a SELinux type label that applies to the container.
                              type: string
                            user:
                              description: User is a SELinux user label that applies to the container.
                              type: string
                          type: object
                        seccompProfile:
                          description: 'The seccomp options to use by the containers in this pod.

                            Note that this field cannot be set when spec.os.name is windows.'
                          properties:
                            localhostProfile:
                              description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                The profile must be preconfigured on the node to work.

                                Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                Must be set if type is "Localhost". Must NOT be set for any other type.'
                              type: string
                            type:
                              description: 'type indicates which kind of seccomp profile will be applied.

                                Valid options are:


                                Localhost - a profile defined in a file on the node should be used.

                                RuntimeDefault - the container runtime default profile should be used.

                                Unconfined - no profile should be applied.'
                              type: string
                          required:
                          - type
                          type: object
                        supplementalGroups:
                          description: 'A list of groups applied to the first process run in each container, in

                            addition to the container''s primary GID and fsGroup (if specified).  If

                            the SupplementalGroupsPolicy feature is enabled, the

                            supplementalGroupsPolicy field determines whether these are in addition

                            to or instead of any group memberships defined in the container image.

                            If unspecified, no additional groups are added, though group memberships

                            defined in the container image may still be used, depending on the

                            supplementalGroupsPolicy field.

                            Note that this field cannot be set when spec.os.name is windows.'
                          items:
                            format: int64
                            type: integer
                          type: array
                          x-kubernetes-list-type: atomic
                        supplementalGroupsPolicy:
                          description: 'Defines how supplemental groups of the first container processes are calculated.

                            Valid values are "Merge" and "Strict". If not specified, "Merge" is used.

                            (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled

                            and the container runtime must implement support for this feature.

                            Note that this field cannot be set when spec.os.name is windows.'
                          type: string
                        sysctls:
                          description: 'Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported

                            sysctls (by the container runtime) might fail to launch.

                            Note that this field cannot be set when spec.os.name is windows.'
                          items:
                            description: Sysctl defines a kernel parameter to be set
                            properties:
                              name:
                                description: Name of a property to set
                                type: string
                              value:
                                description: Value of a property to set
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        windowsOptions:
                          description: 'The Windows specific settings applied to all containers.

                            If unspecified, the options within a container''s SecurityContext will be used.

                            If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                            Note that this field cannot be set when spec.os.name is linux.'
                          properties:
                            gmsaCredentialSpec:
                              description: 'GMSACredentialSpec is where the GMSA admission webhook

                                (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                GMSA credential spec named by the GMSACredentialSpecName field.'
                              type: string
                            gmsaCredentialSpecName:
                              description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                              type: string
                            hostProcess:
                              description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                All of a Pod''s containers must have the same effective HostProcess value

                                (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                In addition, if HostProcess is true then HostNetwork must also be set to true.'
                              type: boolean
                            runAsUserName:
                              description: 'The UserName in Windows to run the entrypoint of the container process.

                                Defaults to the user specified in image metadata if unspecified.

                                May also be set in PodSecurityContext. If set in both SecurityContext and

                                PodSecurityContext, the value specified in SecurityContext takes precedence.'
                              type: string
                          type: object
                      type: object
                    serviceAccountName:
                      description: ServiceAccountName to apply to workflow pods
                      type: string
                    sidecars:
                      description: 'Sidecars is a list of containers which run alongside the main container

                        Sidecars are automatically killed when the main container completes'
                      items:
                        description: UserContainer is a container specified by a user.
                        properties:
                          args:
                            description: 'Arguments to the entrypoint.

                              The container image''s CMD is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          command:
                            description: 'Entrypoint array. Not executed within a shell.

                              The container image''s ENTRYPOINT is used if this is not provided.

                              Variable references $(VAR_NAME) are expanded using the container''s environment. If a variable

                              cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced

                              to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will

                              produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless

                              of whether the variable exists or not. Cannot be updated.

                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                            x-kubernetes-list-type: atomic
                          env:
                            description: 'List of environment variables to set in the container.

                              Cannot be updated.'
                            items:
                              description: EnvVar represents an environment variable present in a Container.
                              properties:
                                name:
                                  description: Name of the environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                value:
                                  description: 'Variable references $(VAR_NAME) are expanded

                                    using the previously defined environment variables in the container and

                                    any service environment variables. If a variable cannot be resolved,

                                    the reference in the input string will be unchanged. Double $$ are reduced

                                    to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.

                                    "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".

                                    Escaped references will never be expanded, regardless of whether the variable

                                    exists or not.

                                    Defaults to "".'
                                  type: string
                                valueFrom:
                                  description: Source for the environment variable's value. Cannot be used if value is not empty.
                                  properties:
                                    configMapKeyRef:
                                      description: Selects a key of a ConfigMap.
                                      properties:
                                        key:
                                          description: The key to select.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the ConfigMap or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    fieldRef:
                                      description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,

                                        spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    secretKeyRef:
                                      description: Selects a key of a secret in the pod's namespace
                                      properties:
                                        key:
                                          description: The key of the secret to select from.  Must be a valid secret key.
                                          type: string
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: Specify whether the Secret or its key must be defined
                                          type: boolean
                                      required:
                                      - key
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  type: object
                              required:
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - name
                            x-kubernetes-list-type: map
                          envFrom:
                            description: 'List of sources to populate environment variables in the container.

                              The keys defined within a source must be a C_IDENTIFIER. All invalid keys

                              will be reported as an event when the container is starting. When a key exists in multiple

                              sources, the value associated with the last source will take precedence.

                              Values defined by an Env with a duplicate key will take precedence.

                              Cannot be updated.'
                            items:
                              description: EnvFromSource represents the source of a set of ConfigMaps or Secrets
                              properties:
                                configMapRef:
                                  description: The ConfigMap to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the ConfigMap must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                                prefix:
                                  description: Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.
                                  type: string
                                secretRef:
                                  description: The Secret to select from
                                  properties:
                                    name:
                                      default: ''
                                      description: 'Name of the referent.

                                        This field is effectively required, but due to backwards compatibility is

                                        allowed to be empty. Instances of this type with an empty value here are

                                        almost certainly wrong.

                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                      type: string
                                    optional:
                                      description: Specify whether the Secret must be defined
                                      type: boolean
                                  type: object
                                  x-kubernetes-map-type: atomic
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          image:
                            description: 'Container image name.

                              More info: https://kubernetes.io/docs/concepts/containers/images

                              This field is optional to allow higher level config management to default or override

                              container images in workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy.

                              One of Always, Never, IfNotPresent.

                              Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          lifecycle:
                            description: 'Actions that the management system should take in response to container lifecycle events.

                              Cannot be updated.'
                            properties:
                              postStart:
                                description: 'PostStart is called immediately after a container is created. If the handler fails,

                                  the container is terminated and restarted according to its restart policy.

                                  Other management of the container blocks until the hook completes.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              preStop:
                                description: 'PreStop is called immediately before a container is terminated due to an

                                  API request or management event such as liveness/startup probe failure,

                                  preemption, resource contention, etc. The handler is not called if the

                                  container crashes or exits. The Pod''s termination grace period countdown begins before the

                                  PreStop hook is executed. Regardless of the outcome of the handler, the

                                  container will eventually terminate within the Pod''s termination grace

                                  period (unless delayed by finalizers). Other management of the container blocks until the hook completes

                                  or until the termination grace period is reached.

                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                properties:
                                  exec:
                                    description: Exec specifies a command to execute in the container.
                                    properties:
                                      command:
                                        description: 'Command is the command line to execute inside the container, the working directory for the

                                          command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                          not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                          a shell, you need to explicitly call out to that shell.

                                          Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                    type: object
                                  httpGet:
                                    description: HTTPGet specifies an HTTP GET request to perform.
                                    properties:
                                      host:
                                        description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                          "Host" in httpHeaders instead.'
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: 'The header field name.

                                                This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Name or number of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: 'Scheme to use for connecting to the host.

                                          Defaults to HTTP.'
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  sleep:
                                    description: Sleep represents a duration that the container should sleep.
                                    properties:
                                      seconds:
                                        description: Seconds is the number of seconds to sleep.
                                        format: int64
                                        type: integer
                                    required:
                                    - seconds
                                    type: object
                                  tcpSocket:
                                    description: 'Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept

                                      for backward compatibility. There is no validation of this field and

                                      lifecycle hooks will fail at runtime when it is specified.'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: 'Number or name of the port to access on the container.

                                          Number must be in the range 1 to 65535.

                                          Name must be an IANA_SVC_NAME.'
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                type: object
                              stopSignal:
                                description: 'StopSignal defines which signal will be sent to a container when it is being stopped.

                                  If not specified, the default is defined by the container runtime in use.

                                  StopSignal can only be set for Pods with a non-empty .spec.os.name'
                                type: string
                            type: object
                          livenessProbe:
                            description: 'Periodic probe of container liveness.

                              Container will be restarted if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          mirrorVolumeMounts:
                            description: 'MirrorVolumeMounts will mount the same volumes specified in the main container

                              to the container (including artifacts), at the same mountPaths. This enables

                              dind daemon to partially see the same filesystem as the main container in

                              order to use features such as docker volume binding'
                            type: boolean
                          name:
                            description: 'Name of the container specified as a DNS_LABEL.

                              Each container in a pod must have a unique name (DNS_LABEL).

                              Cannot be updated.'
                            type: string
                          ports:
                            description: 'List of ports to expose from the container. Not specifying a port here

                              DOES NOT prevent that port from being exposed. Any port which is

                              listening on the default "0.0.0.0" address inside a container will be

                              accessible from the network.

                              Modifying this array with strategic merge patch may corrupt the data.

                              For more information See https://github.com/kubernetes/kubernetes/issues/108255.

                              Cannot be updated.'
                            items:
                              description: ContainerPort represents a network port in a single container.
                              properties:
                                containerPort:
                                  description: 'Number of port to expose on the pod''s IP address.

                                    This must be a valid port number, 0 < x < 65536.'
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port to.
                                  type: string
                                hostPort:
                                  description: 'Number of port to expose on the host.

                                    If specified, this must be a valid port number, 0 < x < 65536.

                                    If HostNetwork is specified, this must match ContainerPort.

                                    Most containers do not need this.'
                                  format: int32
                                  type: integer
                                name:
                                  description: 'If specified, this must be an IANA_SVC_NAME and unique within the pod. Each

                                    named port in a pod must have a unique name. Name for the port that can be

                                    referred to by services.'
                                  type: string
                                protocol:
                                  default: TCP
                                  description: 'Protocol for port. Must be UDP, TCP, or SCTP.

                                    Defaults to "TCP".'
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - containerPort
                            - protocol
                            x-kubernetes-list-type: map
                          readinessProbe:
                            description: 'Periodic probe of container service readiness.

                              Container will be removed from service endpoints if the probe fails.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          resizePolicy:
                            description: Resources resize policy for the container.
                            items:
                              description: ContainerResizePolicy represents resource resize policy for the container.
                              properties:
                                resourceName:
                                  description: 'Name of the resource to which this resource resize policy applies.

                                    Supported values: cpu, memory.'
                                  type: string
                                restartPolicy:
                                  description: 'Restart policy to apply when specified resource is resized.

                                    If not specified, it defaults to NotRequired.'
                                  type: string
                              required:
                              - resourceName
                              - restartPolicy
                              type: object
                            type: array
                            x-kubernetes-list-type: atomic
                          resources:
                            description: 'Compute Resources required by this container.

                              Cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                            properties:
                              claims:
                                description: 'Claims lists the names of resources, defined in spec.resourceClaims,

                                  that are used by this container.


                                  This is an alpha field and requires enabling the

                                  DynamicResourceAllocation feature gate.


                                  This field is immutable. It can only be set for containers.'
                                items:
                                  description: ResourceClaim references one entry in PodSpec.ResourceClaims.
                                  properties:
                                    name:
                                      description: 'Name must match the name of one entry in pod.spec.resourceClaims of

                                        the Pod where this field is used. It makes that resource available

                                        inside a container.'
                                      type: string
                                    request:
                                      description: 'Request is the name chosen for a request in the referenced claim.

                                        If empty, everything from the claim is made available, otherwise

                                        only the result of this request.'
                                      type: string
                                  required:
                                  - name
                                  type: object
                                type: array
                                x-kubernetes-list-map-keys:
                                - name
                                x-kubernetes-list-type: map
                              limits:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Limits describes the maximum amount of compute resources allowed.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                              requests:
                                additionalProperties:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                description: 'Requests describes the minimum amount of compute resources required.

                                  If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                  otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                  More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                type: object
                            type: object
                          restartPolicy:
                            description: 'RestartPolicy defines the restart behavior of individual containers in a pod.

                              This field may only be set for init containers, and the only allowed value is "Always".

                              For non-init containers or when this field is not specified,

                              the restart behavior is defined by the Pod''s restart policy and the container type.

                              Setting the RestartPolicy as "Always" for the init container will have the following effect:

                              this init container will be continually restarted on

                              exit until all regular containers have terminated. Once all regular

                              containers have completed, all init containers with restartPolicy "Always"

                              will be shut down. This lifecycle differs from normal init containers and

                              is often referred to as a "sidecar" container. Although this init

                              container still starts in the init container sequence, it does not wait

                              for the container to complete before proceeding to the next init

                              container. Instead, the next init container starts immediately after this

                              init container is started, or after any startupProbe has successfully

                              completed.'
                            type: string
                          securityContext:
                            description: 'SecurityContext defines the security options the container should be run with.

                              If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.

                              More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
                            properties:
                              allowPrivilegeEscalation:
                                description: 'AllowPrivilegeEscalation controls whether a process can gain more

                                  privileges than its parent process. This bool directly controls if

                                  the no_new_privs flag will be set on the container process.

                                  AllowPrivilegeEscalation is true always when the container is:

                                  1) run as Privileged

                                  2) has CAP_SYS_ADMIN

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              appArmorProfile:
                                description: 'appArmorProfile is the AppArmor options to use by this container. If set, this profile

                                  overrides the pod''s appArmorProfile.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile loaded on the node that should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must match the loaded name of the profile.

                                      Must be set if and only if type is "Localhost".'
                                    type: string
                                  type:
                                    description: "type indicates which kind of AppArmor profile will be applied.\nValid options are:\n  Localhost - a profile pre-loaded on the node.\n  RuntimeDefault - the container runtime's default profile.\n  Unconfined - no AppArmor enforcement."
                                    type: string
                                required:
                                - type
                                type: object
                              capabilities:
                                description: 'The capabilities to add/drop when running containers.

                                  Defaults to the default set of capabilities granted by the container runtime.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  add:
                                    description: Added capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  drop:
                                    description: Removed capabilities
                                    items:
                                      description: Capability represent POSIX capabilities type
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              privileged:
                                description: 'Run container in privileged mode.

                                  Processes in privileged containers are essentially equivalent to root on the host.

                                  Defaults to false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              procMount:
                                description: 'procMount denotes the type of proc mount to use for the containers.

                                  The default value is Default which uses the container runtime defaults for

                                  readonly paths and masked paths.

                                  This requires the ProcMountType feature flag to be enabled.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: string
                              readOnlyRootFilesystem:
                                description: 'Whether this container has a read-only root filesystem.

                                  Default is false.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                type: boolean
                              runAsGroup:
                                description: 'The GID to run the entrypoint of the container process.

                                  Uses runtime default if unset.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              runAsNonRoot:
                                description: 'Indicates that the container must run as a non-root user.

                                  If true, the Kubelet will validate the image at runtime to ensure that it

                                  does not run as UID 0 (root) and fail to start the container if it does.

                                  If unset or false, no such validation will be performed.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                type: boolean
                              runAsUser:
                                description: 'The UID to run the entrypoint of the container process.

                                  Defaults to user specified in image metadata if unspecified.

                                  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                format: int64
                                type: integer
                              seLinuxOptions:
                                description: 'The SELinux context to be applied to the container.

                                  If unspecified, the container runtime will allocate a random SELinux context for each

                                  container.  May also be set in PodSecurityContext.  If set in both SecurityContext and

                                  PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  level:
                                    description: Level is SELinux level label that applies to the container.
                                    type: string
                                  role:
                                    description: Role is a SELinux role label that applies to the container.
                                    type: string
                                  type:
                                    description: Type is a SELinux type label that applies to the container.
                                    type: string
                                  user:
                                    description: User is a SELinux user label that applies to the container.
                                    type: string
                                type: object
                              seccompProfile:
                                description: 'The seccomp options to use by this container. If seccomp options are

                                  provided at both the pod & container level, the container options

                                  override the pod options.

                                  Note that this field cannot be set when spec.os.name is windows.'
                                properties:
                                  localhostProfile:
                                    description: 'localhostProfile indicates a profile defined in a file on the node should be used.

                                      The profile must be preconfigured on the node to work.

                                      Must be a descending path, relative to the kubelet''s configured seccomp profile location.

                                      Must be set if type is "Localhost". Must NOT be set for any other type.'
                                    type: string
                                  type:
                                    description: 'type indicates which kind of seccomp profile will be applied.

                                      Valid options are:


                                      Localhost - a profile defined in a file on the node should be used.

                                      RuntimeDefault - the container runtime default profile should be used.

                                      Unconfined - no profile should be applied.'
                                    type: string
                                required:
                                - type
                                type: object
                              windowsOptions:
                                description: 'The Windows specific settings applied to all containers.

                                  If unspecified, the options from the PodSecurityContext will be used.

                                  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

                                  Note that this field cannot be set when spec.os.name is linux.'
                                properties:
                                  gmsaCredentialSpec:
                                    description: 'GMSACredentialSpec is where the GMSA admission webhook

                                      (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the

                                      GMSA credential spec named by the GMSACredentialSpecName field.'
                                    type: string
                                  gmsaCredentialSpecName:
                                    description: GMSACredentialSpecName is the name of the GMSA credential spec to use.
                                    type: string
                                  hostProcess:
                                    description: 'HostProcess determines if a container should be run as a ''Host Process'' container.

                                      All of a Pod''s containers must have the same effective HostProcess value

                                      (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).

                                      In addition, if HostProcess is true then HostNetwork must also be set to true.'
                                    type: boolean
                                  runAsUserName:
                                    description: 'The UserName in Windows to run the entrypoint of the container process.

                                      Defaults to the user specified in image metadata if unspecified.

                                      May also be set in PodSecurityContext. If set in both SecurityContext and

                                      PodSecurityContext, the value specified in SecurityContext takes precedence.'
                                    type: string
                                type: object
                            type: object
                          startupProbe:
                            description: 'StartupProbe indicates that the Pod has successfully initialized.

                              If specified, no other probes are executed until this completes successfully.

                              If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.

                              This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle,

                              when it might take a long time to load data or warm a cache, than during steady-state operation.

                              This cannot be updated.

                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: Exec specifies a command to execute in the container.
                                properties:
                                  command:
                                    description: 'Command is the command line to execute inside the container, the working directory for the

                                      command  is root (''/'') in the container''s filesystem. The command is simply exec''d, it is

                                      not run inside a shell, so traditional shell instructions (''|'', etc) won''t work. To use

                                      a shell, you need to explicitly call out to that shell.

                                      Exit status of 0 is treated as live/healthy and non-zero is unhealthy.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              failureThreshold:
                                description: 'Minimum consecutive failures for the probe to be considered failed after having succeeded.

                                  Defaults to 3. Minimum value is 1.'
                                format: int32
                                type: integer
                              grpc:
                                description: GRPC specifies a GRPC HealthCheckRequest.
                                properties:
                                  port:
                                    description: Port number of the gRPC service. Number must be in the range 1 to 65535.
                                    format: int32
                                    type: integer
                                  service:
                                    default: ''
                                    description: 'Service is the name of the service to place in the gRPC HealthCheckRequest

                                      (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).


                                      If this is not specified, the default behavior is defined by gRPC.'
                                    type: string
                                required:
                                - port
                                type: object
                              httpGet:
                                description: HTTPGet specifies an HTTP GET request to perform.
                                properties:
                                  host:
                                    description: 'Host name to connect to, defaults to the pod IP. You probably want to set

                                      "Host" in httpHeaders instead.'
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request. HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header to be used in HTTP probes
                                      properties:
                                        name:
                                          description: 'The header field name.

                                            This will be canonicalized upon output, so case-variant names will be understood as the same header.'
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Name or number of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: 'Scheme to use for connecting to the host.

                                      Defaults to HTTP.'
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container has started before liveness probes are initiated.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: 'How often (in seconds) to perform the probe.

                                  Default to 10 seconds. Minimum value is 1.'
                                format: int32
                                type: integer
                              successThreshold:
                                description: 'Minimum consecutive successes for the probe to be considered successful after having failed.

                                  Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.'
                                format: int32
                                type: integer
                              tcpSocket:
                                description: TCPSocket specifies a connection to a TCP port.
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to, defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: 'Number or name of the port to access on the container.

                                      Number must be in the range 1 to 65535.

                                      Name must be an IANA_SVC_NAME.'
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              terminationGracePeriodSeconds:
                                description: 'Optional duration in seconds the pod needs to terminate gracefully upon probe failure.

                                  The grace period is the duration in seconds after the processes running in the pod are sent

                                  a termination signal and the time when the processes are forcibly halted with a kill signal.

                                  Set this value longer than the expected cleanup time for your process.

                                  If this value is nil, the pod''s terminationGracePeriodSeconds will be used. Otherwise, this

                                  value overrides the value provided by the pod spec.

                                  Value must be non-negative integer. The value zero indicates stop immediately via

                                  the kill signal (no opportunity to shut down).

                                  This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.

                                  Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.'
                                format: int64
                                type: integer
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe times out.

                                  Defaults to 1 second. Minimum value is 1.

                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          stdin:
                            description: 'Whether this container should allocate a buffer for stdin in the container runtime. If this

                              is not set, reads from stdin in the container will always result in EOF.

                              Default is false.'
                            type: boolean
                          stdinOnce:
                            description: 'Whether the container runtime should close the stdin channel after it has been opened by

                              a single attach. When stdin is true the stdin stream will remain open across multiple attach

                              sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the

                              first client attaches to stdin, and then remains open and accepts data until the client disconnects,

                              at which time stdin is closed and remains closed until the container is restarted. If this

                              flag is false, a container processes that reads from stdin will never receive an EOF.

                              Default is false'
                            type: boolean
                          terminationMessagePath:
                            description: 'Optional: Path at which the file to which the container''s termination message

                              will be written is mounted into the container''s filesystem.

                              Message written is intended to be brief final status, such as an assertion failure message.

                              Will be truncated by the node if greater than 4096 bytes. The total message length across

                              all containers will be limited to 12kb.

                              Defaults to /dev/termination-log.

                              Cannot be updated.'
                            type: string
                          terminationMessagePolicy:
                            description: 'Indicate how the termination message should be populated. File will use the contents of

                              terminationMessagePath to populate the container status message on both success and failure.

                              FallbackToLogsOnError will use the last chunk of container log output if the termination

                              message file is empty and the container exited with an error.

                              The log output is limited to 2048 bytes or 80 lines, whichever is smaller.

                              Defaults to File.

                              Cannot be updated.'
                            type: string
                          tty:
                            description: 'Whether this container should allocate a TTY for itself, also requires ''stdin'' to be true.

                              Default is false.'
                            type: boolean
                          volumeDevices:
                            description: volumeDevices is the list of block devices to be used by the container.
                            items:
                              description: volumeDevice describes a mapping of a raw block device within a container.
                              properties:
                                devicePath:
                                  description: devicePath is the path inside of the container that the device will be mapped to.
                                  type: string
                                name:
                                  description: name must match the name of a persistentVolumeClaim in the pod
                                  type: string
                              required:
                              - devicePath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - devicePath
                            x-kubernetes-list-type: map
                          volumeMounts:
                            description: 'Pod volumes to mount into the container''s filesystem.

                              Cannot be updated.'
                            items:
                              description: VolumeMount describes a mounting of a Volume within a container.
                              properties:
                                mountPath:
                                  description: 'Path within the container at which the volume should be mounted.  Must

                                    not contain '':''.'
                                  type: string
                                mountPropagation:
                                  description: 'mountPropagation determines how mounts are propagated from the host

                                    to container and the other way around.

                                    When not set, MountPropagationNone is used.

                                    This field is beta in 1.10.

                                    When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified

                                    (which defaults to None).'
                                  type: string
                                name:
                                  description: This must match the Name of a Volume.
                                  type: string
                                readOnly:
                                  description: 'Mounted read-only if true, read-write otherwise (false or unspecified).

                                    Defaults to false.'
                                  type: boolean
                                recursiveReadOnly:
                                  description: 'RecursiveReadOnly specifies whether read-only mounts should be handled

                                    recursively.


                                    If ReadOnly is false, this field has no meaning and must be unspecified.


                                    If ReadOnly is true, and this field is set to Disabled, the mount is not made

                                    recursively read-only.  If this field is set to IfPossible, the mount is made

                                    recursively read-only, if it is supported by the container runtime.  If this

                                    field is set to Enabled, the mount is made recursively read-only if it is

                                    supported by the container runtime, otherwise the pod will not be started and

                                    an error will be generated to indicate the reason.


                                    If this field is set to IfPossible or Enabled, MountPropagation must be set to

                                    None (or be unspecified, which defaults to None).


                                    If this field is not specified, it is treated as an equivalent of Disabled.'
                                  type: string
                                subPath:
                                  description: 'Path within the volume from which the container''s volume should be mounted.

                                    Defaults to "" (volume''s root).'
                                  type: string
                                subPathExpr:
                                  description: 'Expanded path within the volume from which the container''s volume should be mounted.

                                    Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container''s environment.

                                    Defaults to "" (volume''s root).

                                    SubPathExpr and SubPath are mutually exclusive.'
                                  type: string
                              required:
                              - mountPath
                              - name
                              type: object
                            type: array
                            x-kubernetes-list-map-keys:
                            - mountPath
                            x-kubernetes-list-type: map
                          workingDir:
                            description: 'Container''s working directory.

                              If not specified, the container runtime''s default will be used, which

                              might be configured in the container image.

                              Cannot be updated.'
                            type: string
                        required:
                        - name
                        type: object
                      type: array
                    steps:
                      description: Steps define a series of sequential/parallel workflow steps
                      items:
                        description: 'Note: the `json:"steps"` part exists to workaround kubebuilder limitations.

                          There isn''t actually a "steps" key in the JSON serialization; this is an anonymous list.

                          See the custom Unmarshaller below and ./hack/manifests/crd.go'
                        items:
                          description: 'WorkflowStep is a reference to a template to execute in a series of step

                            Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.'
                          properties:
                            arguments:
                              description: Arguments hold arguments to the template
                              properties:
                                artifacts:
                                  description: Artifacts is the list of artifacts to pass to the template or workflow
                                  items:
                                    description: Artifact indicates an artifact to place at a specified path
                                    properties:
                                      archive:
                                        description: Archive controls how the artifact will be saved to the artifact repository.
                                        properties:
                                          none:
                                            description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                              files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                              save/load the directory appropriately.'
                                            type: object
                                          tar:
                                            description: TarStrategy will tar and gzip the file or directory when saving
                                            properties:
                                              compressionLevel:
                                                description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                  Defaults to gzip.DefaultCompression.'
                                                format: int32
                                                type: integer
                                            type: object
                                          zip:
                                            description: ZipStrategy will unzip zipped input artifacts
                                            type: object
                                        type: object
                                      archiveLogs:
                                        description: ArchiveLogs indicates if the container logs should be archived
                                        type: boolean
                                      artifactGC:
                                        description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                        properties:
                                          podMetadata:
                                            description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                            properties:
                                              annotations:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                              labels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                          serviceAccountName:
                                            description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                            type: string
                                          strategy:
                                            description: Strategy is the strategy to use.
                                            enum:
                                            - ''
                                            - OnWorkflowCompletion
                                            - OnWorkflowDeletion
                                            - Never
                                            type: string
                                        type: object
                                      artifactory:
                                        description: Artifactory contains artifactory artifact location details
                                        properties:
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          url:
                                            description: URL of the artifact
                                            type: string
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - url
                                        type: object
                                      azure:
                                        description: Azure contains Azure Storage artifact location details
                                        properties:
                                          accountKeySecret:
                                            description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          blob:
                                            description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                            type: string
                                          container:
                                            description: Container is the container where resources will be stored
                                            type: string
                                          endpoint:
                                            description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                            type: string
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        required:
                                        - blob
                                        - container
                                        - endpoint
                                        type: object
                                      deleted:
                                        description: Has this been deleted?
                                        type: boolean
                                      from:
                                        description: From allows an artifact to reference an artifact from a previous step
                                        type: string
                                      fromExpression:
                                        description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                        type: string
                                      gcs:
                                        description: GCS contains GCS artifact location details
                                        properties:
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          key:
                                            description: Key is the path in the bucket where the artifact resides
                                            type: string
                                          serviceAccountKeySecret:
                                            description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - key
                                        type: object
                                      git:
                                        description: Git contains git artifact location details
                                        properties:
                                          branch:
                                            description: Branch is the branch to fetch when `SingleBranch` is enabled
                                            type: string
                                          depth:
                                            description: 'Depth specifies clones/fetches should be shallow and include the given

                                              number of commits from the branch tip'
                                            format: int64
                                            type: integer
                                          disableSubmodules:
                                            description: DisableSubmodules disables submodules during git clone
                                            type: boolean
                                          fetch:
                                            description: Fetch specifies a number of refs that should be fetched before checkout
                                            items:
                                              type: string
                                            type: array
                                          insecureIgnoreHostKey:
                                            description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                            type: boolean
                                          insecureSkipTLS:
                                            description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                            type: boolean
                                          passwordSecret:
                                            description: PasswordSecret is the secret selector to the repository password
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          repo:
                                            description: Repo is the git repository
                                            type: string
                                          revision:
                                            description: Revision is the git commit, tag, branch to checkout
                                            type: string
                                          singleBranch:
                                            description: SingleBranch enables single branch clone, using the `branch` parameter
                                            type: boolean
                                          sshPrivateKeySecret:
                                            description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          usernameSecret:
                                            description: UsernameSecret is the secret selector to the repository username
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                        required:
                                        - repo
                                        type: object
                                      globalName:
                                        description: 'GlobalName exports an output artifact to the global scope, making it available as

                                          ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                        type: string
                                      hdfs:
                                        description: HDFS contains HDFS artifact location details
                                        properties:
                                          addresses:
                                            description: Addresses is accessible addresses of HDFS name nodes
                                            items:
                                              type: string
                                            type: array
                                          dataTransferProtection:
                                            description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                              It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                            type: string
                                          force:
                                            description: Force copies a file forcibly even if it exists
                                            type: boolean
                                          hdfsUser:
                                            description: 'HDFSUser is the user to access HDFS file system.

                                              It is ignored if either ccache or keytab is used.'
                                            type: string
                                          krbCCacheSecret:
                                            description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                              Either ccache or keytab can be set to use Kerberos.'
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbConfigConfigMap:
                                            description: 'KrbConfig is the configmap selector for Kerberos config as string

                                              It must be set if either ccache or keytab is used.'
                                            properties:
                                              key:
                                                description: The key to select.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the ConfigMap or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbKeytabSecret:
                                            description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                              Either ccache or keytab can be set to use Kerberos.'
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          krbRealm:
                                            description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                              It must be set if keytab is used.'
                                            type: string
                                          krbServicePrincipalName:
                                            description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                              It must be set if either ccache or keytab is used.'
                                            type: string
                                          krbUsername:
                                            description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                              It must be set if keytab is used.'
                                            type: string
                                          path:
                                            description: Path is a file path in HDFS
                                            type: string
                                        required:
                                        - path
                                        type: object
                                      http:
                                        description: HTTP contains HTTP artifact location details
                                        properties:
                                          auth:
                                            description: Auth contains information for client authentication
                                            properties:
                                              basicAuth:
                                                description: BasicAuth describes the secret selectors required for basic authentication
                                                properties:
                                                  passwordSecret:
                                                    description: PasswordSecret is the secret selector to the repository password
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  usernameSecret:
                                                    description: UsernameSecret is the secret selector to the repository username
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              clientCert:
                                                description: ClientCertAuth holds necessary information for client authentication via certificates
                                                properties:
                                                  clientCertSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientKeySecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                              oauth2:
                                                description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                properties:
                                                  clientIDSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  clientSecretSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                  endpointParams:
                                                    items:
                                                      description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                      properties:
                                                        key:
                                                          description: Name is the header name
                                                          type: string
                                                        value:
                                                          description: Value is the literal value to use for the header
                                                          type: string
                                                      required:
                                                      - key
                                                      type: object
                                                    type: array
                                                  scopes:
                                                    items:
                                                      type: string
                                                    type: array
                                                  tokenURLSecret:
                                                    description: SecretKeySelector selects a key of a Secret.
                                                    properties:
                                                      key:
                                                        description: The key of the secret to select from.  Must be a valid secret key.
                                                        type: string
                                                      name:
                                                        default: ''
                                                        description: 'Name of the referent.

                                                          This field is effectively required, but due to backwards compatibility is

                                                          allowed to be empty. Instances of this type with an empty value here are

                                                          almost certainly wrong.

                                                          More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                        type: string
                                                      optional:
                                                        description: Specify whether the Secret or its key must be defined
                                                        type: boolean
                                                    required:
                                                    - key
                                                    type: object
                                                    x-kubernetes-map-type: atomic
                                                type: object
                                            type: object
                                          headers:
                                            description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                            items:
                                              description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                              properties:
                                                name:
                                                  description: Name is the header name
                                                  type: string
                                                value:
                                                  description: Value is the literal value to use for the header
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          url:
                                            description: URL of the artifact
                                            type: string
                                        required:
                                        - url
                                        type: object
                                      mode:
                                        description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                          Set when loading input artifacts. It is recommended to set the mode value

                                          to ensure the artifact has the expected permissions in your container.'
                                        format: int32
                                        maximum: 511
                                        minimum: 0
                                        type: integer
                                      name:
                                        description: name of the artifact. must be unique within a template's inputs/outputs.
                                        pattern: ^[-a-zA-Z0-9_{}.]+$
                                        type: string
                                      optional:
                                        description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                        type: boolean
                                      oss:
                                        description: OSS contains OSS artifact location details
                                        properties:
                                          accessKeySecret:
                                            description: AccessKeySecret is the secret selector to the bucket's access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          createBucketIfNotPresent:
                                            description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                            type: boolean
                                          endpoint:
                                            description: Endpoint is the hostname of the bucket endpoint
                                            type: string
                                          key:
                                            description: Key is the path in the bucket where the artifact resides
                                            type: string
                                          lifecycleRule:
                                            description: LifecycleRule specifies how to manage bucket's lifecycle
                                            properties:
                                              markDeletionAfterDays:
                                                description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                format: int32
                                                type: integer
                                              markInfrequentAccessAfterDays:
                                                description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                format: int32
                                                type: integer
                                            type: object
                                          secretKeySecret:
                                            description: SecretKeySecret is the secret selector to the bucket's secret key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          securityToken:
                                            description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                            type: string
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        required:
                                        - key
                                        type: object
                                      path:
                                        description: Path is the container path to the artifact
                                        type: string
                                      plugin:
                                        description: Plugin contains plugin artifact location details
                                        properties:
                                          configuration:
                                            description: Configuration is the plugin defined configuration for the artifact driver plugin
                                            type: string
                                          connectionTimeoutSeconds:
                                            description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                            format: int32
                                            type: integer
                                          key:
                                            description: Key is the path in the artifact repository where the artifact resides
                                            type: string
                                          name:
                                            description: Name is the name of the artifact driver plugin
                                            type: string
                                        required:
                                        - key
                                        type: object
                                      raw:
                                        description: Raw contains raw artifact location details
                                        properties:
                                          data:
                                            description: Data is the string contents of the artifact
                                            type: string
                                        required:
                                        - data
                                        type: object
                                      recurseMode:
                                        description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                        type: boolean
                                      s3:
                                        description: S3 contains S3 artifact location details
                                        properties:
                                          accessKeySecret:
                                            description: AccessKeySecret is the secret selector to the bucket's access key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          bucket:
                                            description: Bucket is the name of the bucket
                                            type: string
                                          caSecret:
                                            description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          createBucketIfNotPresent:
                                            description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                            properties:
                                              objectLocking:
                                                description: ObjectLocking Enable object locking
                                                type: boolean
                                            type: object
                                          encryptionOptions:
                                            description: S3EncryptionOptions used to determine encryption options during s3 operations
                                            properties:
                                              enableEncryption:
                                                description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                type: boolean
                                              kmsEncryptionContext:
                                                description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                type: string
                                              kmsKeyId:
                                                description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                type: string
                                              serverSideCustomerKeySecret:
                                                description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                properties:
                                                  key:
                                                    description: The key of the secret to select from.  Must be a valid secret key.
                                                    type: string
                                                  name:
                                                    default: ''
                                                    description: 'Name of the referent.

                                                      This field is effectively required, but due to backwards compatibility is

                                                      allowed to be empty. Instances of this type with an empty value here are

                                                      almost certainly wrong.

                                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                    type: string
                                                  optional:
                                                    description: Specify whether the Secret or its key must be defined
                                                    type: boolean
                                                required:
                                                - key
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            type: object
                                          endpoint:
                                            description: Endpoint is the hostname of the bucket endpoint
                                            type: string
                                          insecure:
                                            description: Insecure will connect to the service with TLS
                                            type: boolean
                                          key:
                                            description: Key is the key in the bucket where the artifact resides
                                            type: string
                                          region:
                                            description: Region contains the optional bucket region
                                            type: string
                                          roleARN:
                                            description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                            type: string
                                          secretKeySecret:
                                            description: SecretKeySecret is the secret selector to the bucket's secret key
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          sessionTokenSecret:
                                            description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                            properties:
                                              key:
                                                description: The key of the secret to select from.  Must be a valid secret key.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the Secret or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          useSDKCreds:
                                            description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                            type: boolean
                                        type: object
                                      subPath:
                                        description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                        type: string
                                    required:
                                    - name
                                    type: object
                                    x-kubernetes-validations:
                                    - message: at most one artifact location can be specified
                                      rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                  type: array
                                parameters:
                                  description: Parameters is the list of parameters to pass to the template or workflow
                                  items:
                                    description: Parameter indicate a passed string parameter to a service template with an optional default value
                                    properties:
                                      default:
                                        description: Default is the default value to use for an input parameter if a value was not supplied
                                        type: string
                                      description:
                                        description: Description is the parameter description
                                        type: string
                                      enum:
                                        description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                        items:
                                          description: '* It''s JSON type is just string.

                                            * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                            * It will marshall back to string - marshalling is not symmetric.'
                                          type: string
                                        minItems: 1
                                        type: array
                                      globalName:
                                        description: 'GlobalName exports an output parameter to the global scope, making it available as

                                          ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                        type: string
                                      name:
                                        description: Name is the parameter name
                                        pattern: ^[-a-zA-Z0-9_]+$
                                        type: string
                                      value:
                                        description: 'Value is the literal value to use for the parameter.

                                          If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                        type: string
                                      valueFrom:
                                        description: ValueFrom is the source for the output parameter's value
                                        properties:
                                          configMapKeyRef:
                                            description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                            properties:
                                              key:
                                                description: The key to select.
                                                type: string
                                              name:
                                                default: ''
                                                description: 'Name of the referent.

                                                  This field is effectively required, but due to backwards compatibility is

                                                  allowed to be empty. Instances of this type with an empty value here are

                                                  almost certainly wrong.

                                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                type: string
                                              optional:
                                                description: Specify whether the ConfigMap or its key must be defined
                                                type: boolean
                                            required:
                                            - key
                                            type: object
                                            x-kubernetes-map-type: atomic
                                          default:
                                            description: Default specifies a value to be used if retrieving the value from the specified source fails
                                            type: string
                                          event:
                                            description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                            type: string
                                          expression:
                                            description: Expression, if defined, is evaluated to specify the value for the parameter
                                            type: string
                                          jqFilter:
                                            description: JQFilter expression against the resource object in resource templates
                                            type: string
                                          jsonPath:
                                            description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                            type: string
                                          parameter:
                                            description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                              (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                            type: string
                                          path:
                                            description: Path in the container to retrieve an output parameter value from in container templates
                                            type: string
                                          supplied:
                                            description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                            type: object
                                        type: object
                                    required:
                                    - name
                                    type: object
                                  type: array
                              type: object
                            continueOn:
                              description: 'ContinueOn makes argo to proceed with the following step even if this step fails.

                                Errors and Failed states can be specified'
                              properties:
                                error:
                                  type: boolean
                                failed:
                                  type: boolean
                              type: object
                            hooks:
                              additionalProperties:
                                properties:
                                  arguments:
                                    description: Arguments hold arguments to the template
                                    properties:
                                      artifacts:
                                        description: Artifacts is the list of artifacts to pass to the template or workflow
                                        items:
                                          description: Artifact indicates an artifact to place at a specified path
                                          properties:
                                            archive:
                                              description: Archive controls how the artifact will be saved to the artifact repository.
                                              properties:
                                                none:
                                                  description: 'NoneStrategy indicates to skip tar process and upload the files or directory tree as independent

                                                    files. Note that if the artifact is a directory, the artifact driver must support the ability to

                                                    save/load the directory appropriately.'
                                                  type: object
                                                tar:
                                                  description: TarStrategy will tar and gzip the file or directory when saving
                                                  properties:
                                                    compressionLevel:
                                                      description: 'CompressionLevel specifies the gzip compression level to use for the artifact.

                                                        Defaults to gzip.DefaultCompression.'
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                zip:
                                                  description: ZipStrategy will unzip zipped input artifacts
                                                  type: object
                                              type: object
                                            archiveLogs:
                                              description: ArchiveLogs indicates if the container logs should be archived
                                              type: boolean
                                            artifactGC:
                                              description: ArtifactGC describes the strategy to use when to deleting an artifact from completed or deleted workflows
                                              properties:
                                                podMetadata:
                                                  description: PodMetadata is an optional field for specifying the Labels and Annotations that should be assigned to the Pod doing the deletion
                                                  properties:
                                                    annotations:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                    labels:
                                                      additionalProperties:
                                                        type: string
                                                      type: object
                                                  type: object
                                                serviceAccountName:
                                                  description: ServiceAccountName is an optional field for specifying the Service Account that should be assigned to the Pod doing the deletion
                                                  type: string
                                                strategy:
                                                  description: Strategy is the strategy to use.
                                                  enum:
                                                  - ''
                                                  - OnWorkflowCompletion
                                                  - OnWorkflowDeletion
                                                  - Never
                                                  type: string
                                              type: object
                                            artifactory:
                                              description: Artifactory contains artifactory artifact location details
                                              properties:
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                url:
                                                  description: URL of the artifact
                                                  type: string
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - url
                                              type: object
                                            azure:
                                              description: Azure contains Azure Storage artifact location details
                                              properties:
                                                accountKeySecret:
                                                  description: AccountKeySecret is the secret selector to the Azure Blob Storage account access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                blob:
                                                  description: Blob is the blob name (i.e., path) in the container where the artifact resides
                                                  type: string
                                                container:
                                                  description: Container is the container where resources will be stored
                                                  type: string
                                                endpoint:
                                                  description: Endpoint is the service url associated with an account. It is most likely "https://<ACCOUNT_NAME>.blob.core.windows.net"
                                                  type: string
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              required:
                                              - blob
                                              - container
                                              - endpoint
                                              type: object
                                            deleted:
                                              description: Has this been deleted?
                                              type: boolean
                                            from:
                                              description: From allows an artifact to reference an artifact from a previous step
                                              type: string
                                            fromExpression:
                                              description: FromExpression, if defined, is evaluated to specify the value for the artifact
                                              type: string
                                            gcs:
                                              description: GCS contains GCS artifact location details
                                              properties:
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                key:
                                                  description: Key is the path in the bucket where the artifact resides
                                                  type: string
                                                serviceAccountKeySecret:
                                                  description: ServiceAccountKeySecret is the secret selector to the bucket's service account key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - key
                                              type: object
                                            git:
                                              description: Git contains git artifact location details
                                              properties:
                                                branch:
                                                  description: Branch is the branch to fetch when `SingleBranch` is enabled
                                                  type: string
                                                depth:
                                                  description: 'Depth specifies clones/fetches should be shallow and include the given

                                                    number of commits from the branch tip'
                                                  format: int64
                                                  type: integer
                                                disableSubmodules:
                                                  description: DisableSubmodules disables submodules during git clone
                                                  type: boolean
                                                fetch:
                                                  description: Fetch specifies a number of refs that should be fetched before checkout
                                                  items:
                                                    type: string
                                                  type: array
                                                insecureIgnoreHostKey:
                                                  description: InsecureIgnoreHostKey disables SSH strict host key checking during git clone
                                                  type: boolean
                                                insecureSkipTLS:
                                                  description: InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
                                                  type: boolean
                                                passwordSecret:
                                                  description: PasswordSecret is the secret selector to the repository password
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                repo:
                                                  description: Repo is the git repository
                                                  type: string
                                                revision:
                                                  description: Revision is the git commit, tag, branch to checkout
                                                  type: string
                                                singleBranch:
                                                  description: SingleBranch enables single branch clone, using the `branch` parameter
                                                  type: boolean
                                                sshPrivateKeySecret:
                                                  description: SSHPrivateKeySecret is the secret selector to the repository ssh private key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                usernameSecret:
                                                  description: UsernameSecret is the secret selector to the repository username
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                              required:
                                              - repo
                                              type: object
                                            globalName:
                                              description: 'GlobalName exports an output artifact to the global scope, making it available as

                                                ''{{workflow.outputs.artifacts.XXXX}} and in workflow.status.outputs.artifacts'
                                              type: string
                                            hdfs:
                                              description: HDFS contains HDFS artifact location details
                                              properties:
                                                addresses:
                                                  description: Addresses is accessible addresses of HDFS name nodes
                                                  items:
                                                    type: string
                                                  type: array
                                                dataTransferProtection:
                                                  description: 'DataTransferProtection is the protection level for HDFS data transfer.

                                                    It corresponds to the dfs.data.transfer.protection configuration in HDFS.'
                                                  type: string
                                                force:
                                                  description: Force copies a file forcibly even if it exists
                                                  type: boolean
                                                hdfsUser:
                                                  description: 'HDFSUser is the user to access HDFS file system.

                                                    It is ignored if either ccache or keytab is used.'
                                                  type: string
                                                krbCCacheSecret:
                                                  description: 'KrbCCacheSecret is the secret selector for Kerberos ccache

                                                    Either ccache or keytab can be set to use Kerberos.'
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbConfigConfigMap:
                                                  description: 'KrbConfig is the configmap selector for Kerberos config as string

                                                    It must be set if either ccache or keytab is used.'
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the ConfigMap or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbKeytabSecret:
                                                  description: 'KrbKeytabSecret is the secret selector for Kerberos keytab

                                                    Either ccache or keytab can be set to use Kerberos.'
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                krbRealm:
                                                  description: 'KrbRealm is the Kerberos realm used with Kerberos keytab

                                                    It must be set if keytab is used.'
                                                  type: string
                                                krbServicePrincipalName:
                                                  description: 'KrbServicePrincipalName is the principal name of Kerberos service

                                                    It must be set if either ccache or keytab is used.'
                                                  type: string
                                                krbUsername:
                                                  description: 'KrbUsername is the Kerberos username used with Kerberos keytab

                                                    It must be set if keytab is used.'
                                                  type: string
                                                path:
                                                  description: Path is a file path in HDFS
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                            http:
                                              description: HTTP contains HTTP artifact location details
                                              properties:
                                                auth:
                                                  description: Auth contains information for client authentication
                                                  properties:
                                                    basicAuth:
                                                      description: BasicAuth describes the secret selectors required for basic authentication
                                                      properties:
                                                        passwordSecret:
                                                          description: PasswordSecret is the secret selector to the repository password
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        usernameSecret:
                                                          description: UsernameSecret is the secret selector to the repository username
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    clientCert:
                                                      description: ClientCertAuth holds necessary information for client authentication via certificates
                                                      properties:
                                                        clientCertSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientKeySecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                    oauth2:
                                                      description: OAuth2Auth holds all information for client authentication via OAuth2 tokens
                                                      properties:
                                                        clientIDSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        clientSecretSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                        endpointParams:
                                                          items:
                                                            description: EndpointParam is for requesting optional fields that should be sent in the oauth request
                                                            properties:
                                                              key:
                                                                description: Name is the header name
                                                                type: string
                                                              value:
                                                                description: Value is the literal value to use for the header
                                                                type: string
                                                            required:
                                                            - key
                                                            type: object
                                                          type: array
                                                        scopes:
                                                          items:
                                                            type: string
                                                          type: array
                                                        tokenURLSecret:
                                                          description: SecretKeySelector selects a key of a Secret.
                                                          properties:
                                                            key:
                                                              description: The key of the secret to select from.  Must be a valid secret key.
                                                              type: string
                                                            name:
                                                              default: ''
                                                              description: 'Name of the referent.

                                                                This field is effectively required, but due to backwards compatibility is

                                                                allowed to be empty. Instances of this type with an empty value here are

                                                                almost certainly wrong.

                                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                              type: string
                                                            optional:
                                                              description: Specify whether the Secret or its key must be defined
                                                              type: boolean
                                                          required:
                                                          - key
                                                          type: object
                                                          x-kubernetes-map-type: atomic
                                                      type: object
                                                  type: object
                                                headers:
                                                  description: Headers are an optional list of headers to send with HTTP requests for artifacts
                                                  items:
                                                    description: Header indicate a key-value request header to be used when fetching artifacts over HTTP
                                                    properties:
                                                      name:
                                                        description: Name is the header name
                                                        type: string
                                                      value:
                                                        description: Value is the literal value to use for the header
                                                        type: string
                                                    required:
                                                    - name
                                                    - value
                                                    type: object
                                                  type: array
                                                url:
                                                  description: URL of the artifact
                                                  type: string
                                              required:
                                              - url
                                              type: object
                                            mode:
                                              description: 'mode bits to use on this file, must be a value between 0 and 0777.

                                                Set when loading input artifacts. It is recommended to set the mode value

                                                to ensure the artifact has the expected permissions in your container.'
                                              format: int32
                                              maximum: 511
                                              minimum: 0
                                              type: integer
                                            name:
                                              description: name of the artifact. must be unique within a template's inputs/outputs.
                                              pattern: ^[-a-zA-Z0-9_{}.]+$
                                              type: string
                                            optional:
                                              description: Make Artifacts optional, if Artifacts doesn't generate or exist
                                              type: boolean
                                            oss:
                                              description: OSS contains OSS artifact location details
                                              properties:
                                                accessKeySecret:
                                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                createBucketIfNotPresent:
                                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the OSS bucket for output artifacts, if it doesn't exist
                                                  type: boolean
                                                endpoint:
                                                  description: Endpoint is the hostname of the bucket endpoint
                                                  type: string
                                                key:
                                                  description: Key is the path in the bucket where the artifact resides
                                                  type: string
                                                lifecycleRule:
                                                  description: LifecycleRule specifies how to manage bucket's lifecycle
                                                  properties:
                                                    markDeletionAfterDays:
                                                      description: MarkDeletionAfterDays is the number of days before we delete objects in the bucket
                                                      format: int32
                                                      type: integer
                                                    markInfrequentAccessAfterDays:
                                                      description: MarkInfrequentAccessAfterDays is the number of days before we convert the objects in the bucket to Infrequent Access (IA) storage type
                                                      format: int32
                                                      type: integer
                                                  type: object
                                                secretKeySecret:
                                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                securityToken:
                                                  description: 'SecurityToken is the user''s temporary security token. For more details, check out: https://www.alibabacloud.com/help/doc-detail/100624.htm'
                                                  type: string
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            path:
                                              description: Path is the container path to the artifact
                                              type: string
                                            plugin:
                                              description: Plugin contains plugin artifact location details
                                              properties:
                                                configuration:
                                                  description: Configuration is the plugin defined configuration for the artifact driver plugin
                                                  type: string
                                                connectionTimeoutSeconds:
                                                  description: ConnectionTimeoutSeconds is the timeout for the artifact driver connection, overriding the driver's timeout
                                                  format: int32
                                                  type: integer
                                                key:
                                                  description: Key is the path in the artifact repository where the artifact resides
                                                  type: string
                                                name:
                                                  description: Name is the name of the artifact driver plugin
                                                  type: string
                                              required:
                                              - key
                                              type: object
                                            raw:
                                              description: Raw contains raw artifact location details
                                              properties:
                                                data:
                                                  description: Data is the string contents of the artifact
                                                  type: string
                                              required:
                                              - data
                                              type: object
                                            recurseMode:
                                              description: If mode is set, apply the permission recursively into the artifact if it is a folder
                                              type: boolean
                                            s3:
                                              description: S3 contains S3 artifact location details
                                              properties:
                                                accessKeySecret:
                                                  description: AccessKeySecret is the secret selector to the bucket's access key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                bucket:
                                                  description: Bucket is the name of the bucket
                                                  type: string
                                                caSecret:
                                                  description: CASecret specifies the secret that contains the CA, used to verify the TLS connection
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                createBucketIfNotPresent:
                                                  description: CreateBucketIfNotPresent tells the driver to attempt to create the S3 bucket for output artifacts, if it doesn't exist. Setting Enabled Encryption will apply either SSE-S3 to the bucket if KmsKeyId is not set or SSE-KMS if it is.
                                                  properties:
                                                    objectLocking:
                                                      description: ObjectLocking Enable object locking
                                                      type: boolean
                                                  type: object
                                                encryptionOptions:
                                                  description: S3EncryptionOptions used to determine encryption options during s3 operations
                                                  properties:
                                                    enableEncryption:
                                                      description: EnableEncryption tells the driver to encrypt objects if set to true. If kmsKeyId and serverSideCustomerKeySecret are not set, SSE-S3 will be used
                                                      type: boolean
                                                    kmsEncryptionContext:
                                                      description: KmsEncryptionContext is a json blob that contains an encryption context. See https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context for more information
                                                      type: string
                                                    kmsKeyId:
                                                      description: KMSKeyId tells the driver to encrypt the object using the specified KMS Key.
                                                      type: string
                                                    serverSideCustomerKeySecret:
                                                      description: ServerSideCustomerKeySecret tells the driver to encrypt the output artifacts using SSE-C with the specified secret.
                                                      properties:
                                                        key:
                                                          description: The key of the secret to select from.  Must be a valid secret key.
                                                          type: string
                                                        name:
                                                          default: ''
                                                          description: 'Name of the referent.

                                                            This field is effectively required, but due to backwards compatibility is

                                                            allowed to be empty. Instances of this type with an empty value here are

                                                            almost certainly wrong.

                                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                          type: string
                                                        optional:
                                                          description: Specify whether the Secret or its key must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                      x-kubernetes-map-type: atomic
                                                  type: object
                                                endpoint:
                                                  description: Endpoint is the hostname of the bucket endpoint
                                                  type: string
                                                insecure:
                                                  description: Insecure will connect to the service with TLS
                                                  type: boolean
                                                key:
                                                  description: Key is the key in the bucket where the artifact resides
                                                  type: string
                                                region:
                                                  description: Region contains the optional bucket region
                                                  type: string
                                                roleARN:
                                                  description: RoleARN is the Amazon Resource Name (ARN) of the role to assume.
                                                  type: string
                                                secretKeySecret:
                                                  description: SecretKeySecret is the secret selector to the bucket's secret key
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                sessionTokenSecret:
                                                  description: SessionTokenSecret is used for ephemeral credentials like an IAM assume role or S3 access grant
                                                  properties:
                                                    key:
                                                      description: The key of the secret to select from.  Must be a valid secret key.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the Secret or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                useSDKCreds:
                                                  description: UseSDKCreds tells the driver to figure out credentials based on sdk defaults.
                                                  type: boolean
                                              type: object
                                            subPath:
                                              description: SubPath allows an artifact to be sourced from a subpath within the specified source
                                              type: string
                                          required:
                                          - name
                                          type: object
                                          x-kubernetes-validations:
                                          - message: at most one artifact location can be specified
                                            rule: '(has(self.s3) ? 1 : 0) + (has(self.git) ? 1 : 0) + (has(self.http) ? 1 : 0) + (has(self.artifactory) ? 1 : 0) + (has(self.hdfs) ? 1 : 0) + (has(self.raw) ? 1 : 0) + (has(self.oss) ? 1 : 0) + (has(self.gcs) ? 1 : 0) + (has(self.azure) ? 1 : 0) + (has(self.plugin) ? 1 : 0) <= 1'
                                        type: array
                                      parameters:
                                        description: Parameters is the list of parameters to pass to the template or workflow
                                        items:
                                          description: Parameter indicate a passed string parameter to a service template with an optional default value
                                          properties:
                                            default:
                                              description: Default is the default value to use for an input parameter if a value was not supplied
                                              type: string
                                            description:
                                              description: Description is the parameter description
                                              type: string
                                            enum:
                                              description: Enum holds a list of string values to choose from, for the actual value of the parameter
                                              items:
                                                description: '* It''s JSON type is just string.

                                                  * It will unmarshall int64, int32, float64, float32, boolean, a plain string and represents it as string.

                                                  * It will marshall back to string - marshalling is not symmetric.'
                                                type: string
                                              minItems: 1
                                              type: array
                                            globalName:
                                              description: 'GlobalName exports an output parameter to the global scope, making it available as

                                                ''{{workflow.outputs.parameters.XXXX}} and in workflow.status.outputs.parameters'
                                              type: string
                                            name:
                                              description: Name is the parameter name
                                              pattern: ^[-a-zA-Z0-9_]+$
                                              type: string
                                            value:
                                              description: 'Value is the literal value to use for the parameter.

                                                If specified in the context of an input parameter, any passed values take precedence over the specified value'
                                              type: string
                                            valueFrom:
                                              description: ValueFrom is the source for the output parameter's value
                                              properties:
                                                configMapKeyRef:
                                                  description: ConfigMapKeyRef is configmap selector for input parameter configuration
                                                  properties:
                                                    key:
                                                      description: The key to select.
                                                      type: string
                                                    name:
                                                      default: ''
                                                      description: 'Name of the referent.

                                                        This field is effectively required, but due to backwards compatibility is

                                                        allowed to be empty. Instances of this type with an empty value here are

                                                        almost certainly wrong.

                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                                      type: string
                                                    optional:
                                                      description: Specify whether the ConfigMap or its key must be defined
                                                      type: boolean
                                                  required:
                                                  - key
                                                  type: object
                                                  x-kubernetes-map-type: atomic
                                                default:
                                                  description: Default specifies a value to be used if retrieving the value from the specified source fails
                                                  type: string
                                                event:
                                                  description: Selector (https://github.com/expr-lang/expr) that is evaluated against the event to get the value of the parameter. E.g. `payload.message`
                                                  type: string
                                                expression:
                                                  description: Expression, if defined, is evaluated to specify the value for the parameter
                                                  type: string
                                                jqFilter:
                                                  description: JQFilter expression against the resource object in resource templates
                                                  type: string
                                                jsonPath:
                                                  description: JSONPath of a resource to retrieve an output parameter value from in resource templates
                                                  type: string
                                                parameter:
                                                  description: 'Parameter reference to a step or dag task in which to retrieve an output parameter value from

                                                    (e.g. ''{{steps.mystep.outputs.myparam}}'')'
                                                  type: string
                                                path:
                                                  description: Path in the container to retrieve an output parameter value from in container templates
                                                  type: string
                                                supplied:
                                                  description: Supplied value to be filled in directly, either through the CLI, API, etc.
                                                  type: object
                                              type: object
                                          required:
                                          - name
                                          type: object
                                        type: array
                                    type: object
                                  expression:
                                    description: 'Expression is a condition expression for when a node will be retried. If it evaluates to false, the node will not

                                      be retried and the retry strategy will be ignored'
                                    type: string
                                  template:
                                    description: Template is the name of the template to execute by the hook
                                    type: string
                                  templateRef:
                                    description: TemplateRef is the reference to the template resource to execute by the hook
                                    properties:
                                      clusterScope:
                                        description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                        type: boolean
                                      name:
                                        description: Name is the resource name of the template.
                                        type: string
                                      template:
                                        description: Template is the name of referred template in the resource.
                                        type: string
                                    type: object
                                type: object
                              description: 'Hooks holds the lifecycle hook which is invoked at lifecycle of

                                step, irrespective of the success, failure, or error status of the primary step'
                              type: object
                            inline:
                              description: 'Inline is the template. Template must be empty if this is declared (and vice-versa).

                                Note: This struct is defined recursively, since the inline template can potentially contain

                                steps/DAGs that also has an "inline" field. Kubernetes doesn''t allow recursive types, so we

                                need "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                              x-kubernetes-preserve-unknown-fields: true
                            name:
                              description: Name of the step
                              maxLength: 128
                              pattern: ^[a-zA-Z0-9][-a-zA-Z0-9]*$
                              type: string
                            onExit:
                              description: 'OnExit is a template reference which is invoked at the end of the

                                template, irrespective of the success, failure, or error of the

                                primary template.

                                DEPRECATED: Use Hooks[exit].Template instead.'
                              type: string
                            template:
                              description: Template is the name of the template to execute as the step
                              type: string
                            templateRef:
                              description: TemplateRef is the reference to the template resource to execute as the step.
                              properties:
                                clusterScope:
                                  description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                                  type: boolean
                                name:
                                  description: Name is the resource name of the template.
                                  type: string
                                template:
                                  description: Template is the name of referred template in the resource.
                                  type: string
                              type: object
                            when:
                              description: When is an expression in which the step should conditionally execute
                              type: string
                            withItems:
                              description: 'WithItems expands a step into multiple parallel steps from the items in the list

                                Note: The structure of WithItems is free-form, so we need

                                "x-kubernetes-preserve-unknown-fields: true" in the validation schema.'
                              x-kubernetes-preserve-unknown-fields: true
                            withParam:
                              description: 'WithParam expands a step into multiple parallel steps from the value in the parameter,

                                which is expected to be a JSON list.'
                              type: string
                            withSequence:
                              description: WithSequence expands a step into a numeric sequence
                              properties:
                                count:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Count is number of elements in the sequence (default: 0). Not to be used with end'
                                  x-kubernetes-int-or-string: true
                                end:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number at which to end the sequence (default: 0). Not to be used with Count'
                                  x-kubernetes-int-or-string: true
                                format:
                                  description: Format is a printf format string to format the value in the sequence
                                  type: string
                                start:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: 'Number at which to start the sequence (default: 0)'
                                  x-kubernetes-int-or-string: true
                              type: object
                              x-kubernetes-validations:
                              - message: only one of count or end can be defined
                                rule: '!(has(self.count) && has(self.end))'
                          type: object
                        type: array
                      minItems: 1
                      type: array
                    suspend:
                      description: Suspend template subtype which can suspend a workflow when reaching the step
                      properties:
                        duration:
                          description: 'Duration is the seconds to wait before automatically resuming a template. Must be a string. Default unit is seconds.

                            Could also be a Duration, e.g.: "2m", "6h"'
                          type: string
                      type: object
                    synchronization:
                      description: Synchronization holds synchronization lock configuration for this template
                      properties:
                        mutexes:
                          description: 'v3.6 and after: Mutexes holds the list of Mutex lock details'
                          items:
                            description: Mutex holds Mutex configuration
                            properties:
                              database:
                                description: Database specifies this is database controlled if this is set true
                                type: boolean
                              name:
                                description: name of the mutex
                                type: string
                              namespace:
                                description: 'Namespace is the namespace of the mutex, default: [namespace of workflow]'
                                type: string
                            type: object
                          type: array
                        semaphores:
                          description: 'v3.6 and after: Semaphores holds the list of Semaphores configuration'
                          items:
                            description: SemaphoreRef is a reference of Semaphore
                            properties:
                              configMapKeyRef:
                                description: ConfigMapKeyRef is a configmap selector for Semaphore configuration
                                properties:
                                  key:
                                    description: The key to select.
                                    type: string
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: Specify whether the ConfigMap or its key must be defined
                                    type: boolean
                                required:
                                - key
                                type: object
                                x-kubernetes-map-type: atomic
                              database:
                                description: SyncDatabaseRef is a database reference for Semaphore configuration
                                properties:
                                  key:
                                    type: string
                                required:
                                - key
                                type: object
                              namespace:
                                description: 'Namespace is the namespace of the configmap, default: [namespace of workflow]'
                                type: string
                            type: object
                          type: array
                      type: object
                    timeout:
                      description: 'Timeout allows to set the total node execution timeout duration counting from the node''s start time.

                        This duration also includes time in which the node spends in Pending state. This duration may not be applied to Step or DAG templates.'
                      type: string
                    tolerations:
                      description: Tolerations to apply to workflow pods.
                      items:
                        description: 'The pod this Toleration is attached to tolerates any taint that matches

                          the triple <key,value,effect> using the matching operator <operator>.'
                        properties:
                          effect:
                            description: 'Effect indicates the taint effect to match. Empty means match all taint effects.

                              When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.'
                            type: string
                          key:
                            description: 'Key is the taint key that the toleration applies to. Empty means match all taint keys.

                              If the key is empty, operator must be Exists; this combination means to match all values and all keys.'
                            type: string
                          operator:
                            description: 'Operator represents a key''s relationship to the value.

                              Valid operators are Exists and Equal. Defaults to Equal.

                              Exists is equivalent to wildcard for value, so that a pod can

                              tolerate all taints of a particular category.'
                            type: string
                          tolerationSeconds:
                            description: 'TolerationSeconds represents the period of time the toleration (which must be

                              of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,

                              it is not set, which means tolerate the taint forever (do not evict). Zero and

                              negative values will be treated as 0 (evict immediately) by the system.'
                            format: int64
                            type: integer
                          value:
                            description: 'Value is the taint value the toleration matches to.

                              If the operator is Exists, the value should be empty, otherwise just a regular string.'
                            type: string
                        type: object
                      type: array
                    volumes:
                      description: Volumes is a list of volumes that can be mounted by containers in a template.
                      items:
                        description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
                        properties:
                          awsElasticBlockStore:
                            description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree

                              awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: string
                              partition:
                                description: 'partition is the partition in the volume that you want to mount.

                                  If omitted, the default is to mount by volume name.

                                  Examples: For volume /dev/sda1, you specify the partition as "1".

                                  Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
                                format: int32
                                type: integer
                              readOnly:
                                description: 'readOnly value true will force the readOnly setting in VolumeMounts.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: boolean
                              volumeID:
                                description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                                type: string
                            required:
                            - volumeID
                            type: object
                          azureDisk:
                            description: 'azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

                              Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type

                              are redirected to the disk.csi.azure.com CSI driver.'
                            properties:
                              cachingMode:
                                description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                                type: string
                              diskName:
                                description: diskName is the Name of the data disk in the blob storage
                                type: string
                              diskURI:
                                description: diskURI is the URI of data disk in the blob storage
                                type: string
                              fsType:
                                default: ext4
                                description: 'fsType is Filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              kind:
                                description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
                                type: string
                              readOnly:
                                default: false
                                description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                            required:
                            - diskName
                            - diskURI
                            type: object
                          azureFile:
                            description: 'azureFile represents an Azure File Service mount on the host and bind mount to the pod.

                              Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type

                              are redirected to the file.csi.azure.com CSI driver.'
                            properties:
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretName:
                                description: secretName is the  name of secret that contains Azure Storage Account Name and Key
                                type: string
                              shareName:
                                description: shareName is the azure share Name
                                type: string
                            required:
                            - secretName
                            - shareName
                            type: object
                          cephfs:
                            description: 'cephFS represents a Ceph FS mount on the host that shares a pod''s lifetime.

                              Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.'
                            properties:
                              monitors:
                                description: 'monitors is Required: Monitors is a collection of Ceph monitors

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              path:
                                description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
                                type: string
                              readOnly:
                                description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: boolean
                              secretFile:
                                description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: string
                              secretRef:
                                description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              user:
                                description: 'user is optional: User is the rados user name, default is admin

                                  More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                                type: string
                            required:
                            - monitors
                            type: object
                          cinder:
                            description: 'cinder represents a cinder volume attached and mounted on kubelets host machine.

                              Deprecated: Cinder is deprecated. All operations for the in-tree cinder type

                              are redirected to the cinder.csi.openstack.org CSI driver.

                              More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: boolean
                              secretRef:
                                description: 'secretRef is optional: points to a secret object containing parameters used to connect

                                  to OpenStack.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              volumeID:
                                description: 'volumeID used to identify the volume in cinder.

                                  More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                                type: string
                            required:
                            - volumeID
                            type: object
                          configMap:
                            description: configMap represents a configMap that should populate this volume
                            properties:
                              defaultMode:
                                description: 'defaultMode is optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                  ConfigMap will be projected into the volume as a file whose name is the

                                  key and content is the value. If specified, the listed keys will be

                                  projected into the specified paths, and unlisted keys will not be

                                  present. If a key is specified which is not present in the ConfigMap,

                                  the volume setup will error unless it is marked optional. Paths must be

                                  relative and may not contain the ''..'' path or start with ''..''.'
                                items:
                                  description: Maps a string key to a path within a volume.
                                  properties:
                                    key:
                                      description: key is the key to project.
                                      type: string
                                    mode:
                                      description: 'mode is Optional: mode bits used to set permissions on this file.

                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'path is the relative path of the file to map the key to.

                                        May not be an absolute path.

                                        May not contain the path element ''..''.

                                        May not start with the string ''..''.'
                                      type: string
                                  required:
                                  - key
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              name:
                                default: ''
                                description: 'Name of the referent.

                                  This field is effectively required, but due to backwards compatibility is

                                  allowed to be empty. Instances of this type with an empty value here are

                                  almost certainly wrong.

                                  More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                type: string
                              optional:
                                description: optional specify whether the ConfigMap or its keys must be defined
                                type: boolean
                            type: object
                            x-kubernetes-map-type: atomic
                          csi:
                            description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
                            properties:
                              driver:
                                description: 'driver is the name of the CSI driver that handles this volume.

                                  Consult with your admin for the correct name as registered in the cluster.'
                                type: string
                              fsType:
                                description: 'fsType to mount. Ex. "ext4", "xfs", "ntfs".

                                  If not provided, the empty value is passed to the associated CSI driver

                                  which will determine the default filesystem to apply.'
                                type: string
                              nodePublishSecretRef:
                                description: 'nodePublishSecretRef is a reference to the secret object containing

                                  sensitive information to pass to the CSI driver to complete the CSI

                                  NodePublishVolume and NodeUnpublishVolume calls.

                                  This field is optional, and  may be empty if no secret is required. If the

                                  secret object contains more than one secret, all secret references are passed.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              readOnly:
                                description: 'readOnly specifies a read-only configuration for the volume.

                                  Defaults to false (read/write).'
                                type: boolean
                              volumeAttributes:
                                additionalProperties:
                                  type: string
                                description: 'volumeAttributes stores driver-specific properties that are passed to the CSI

                                  driver. Consult your driver''s documentation for supported values.'
                                type: object
                            required:
                            - driver
                            type: object
                          downwardAPI:
                            description: downwardAPI represents downward API about the pod that should populate this volume
                            properties:
                              defaultMode:
                                description: 'Optional: mode bits to use on created files by default. Must be a

                                  Optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: Items is a list of downward API volume file
                                items:
                                  description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                  properties:
                                    fieldRef:
                                      description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                      properties:
                                        apiVersion:
                                          description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                          type: string
                                        fieldPath:
                                          description: Path of the field to select in the specified API version.
                                          type: string
                                      required:
                                      - fieldPath
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    mode:
                                      description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                        between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                      type: string
                                    resourceFieldRef:
                                      description: 'Selects a resource of the container: only resources limits and requests

                                        (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                      properties:
                                        containerName:
                                          description: 'Container name: required for volumes, optional for env vars'
                                          type: string
                                        divisor:
                                          anyOf:
                                          - type: integer
                                          - type: string
                                          description: Specifies the output format of the exposed resources, defaults to "1"
                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                          x-kubernetes-int-or-string: true
                                        resource:
                                          description: 'Required: resource to select'
                                          type: string
                                      required:
                                      - resource
                                      type: object
                                      x-kubernetes-map-type: atomic
                                  required:
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          emptyDir:
                            description: 'emptyDir represents a temporary directory that shares a pod''s lifetime.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                            properties:
                              medium:
                                description: 'medium represents what type of storage medium should back this directory.

                                  The default is "" which means to use the node''s default medium.

                                  Must be an empty string (default) or Memory.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                type: string
                              sizeLimit:
                                anyOf:
                                - type: integer
                                - type: string
                                description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume.

                                  The size limit is also applicable for memory medium.

                                  The maximum usage on memory medium EmptyDir would be the minimum value between

                                  the SizeLimit specified here and the sum of memory limits of all containers in a pod.

                                  The default is nil which means that the limit is undefined.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                            type: object
                          ephemeral:
                            description: "ephemeral represents a volume that is handled by a cluster storage driver.\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n   tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\n   information on the connection between this volume type\n   and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time."
                            properties:
                              volumeClaimTemplate:
                                description: 'Will be used to create a stand-alone PVC to provision the volume.

                                  The pod in which this EphemeralVolumeSource is embedded will be the

                                  owner of the PVC, i.e. the PVC will be deleted together with the

                                  pod.  The name of the PVC will be `<pod name>-<volume name>` where

                                  `<volume name>` is the name from the `PodSpec.Volumes` array

                                  entry. Pod validation will reject the pod if the concatenated name

                                  is not valid for a PVC (for example, too long).


                                  An existing PVC with that name that is not owned by the pod

                                  will *not* be used for the pod to avoid using an unrelated

                                  volume by mistake. Starting the pod is then blocked until

                                  the unrelated PVC is removed. If such a pre-created PVC is

                                  meant to be used by the pod, the PVC has to updated with an

                                  owner reference to the pod once the pod exists. Normally

                                  this should not be necessary, but it may be useful when

                                  manually reconstructing a broken cluster.


                                  This field is read-only and no changes will be made by Kubernetes

                                  to the PVC after it has been created.


                                  Required, must not be nil.'
                                properties:
                                  metadata:
                                    description: 'May contain labels and annotations that will be copied into the PVC

                                      when creating it. No other fields are allowed and will be rejected during

                                      validation.'
                                    properties:
                                      annotations:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      finalizers:
                                        items:
                                          type: string
                                        type: array
                                      generateName:
                                        type: string
                                      labels:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      name:
                                        type: string
                                      namespace:
                                        type: string
                                    type: object
                                  spec:
                                    description: 'The specification for the PersistentVolumeClaim. The entire content is

                                      copied unchanged into the PVC that gets created from this

                                      template. The same fields as in a PersistentVolumeClaim

                                      are also valid here.'
                                    properties:
                                      accessModes:
                                        description: 'accessModes contains the desired access modes the volume should have.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                        items:
                                          type: string
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      dataSource:
                                        description: 'dataSource field can be used to specify either:

                                          * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                          * An existing PVC (PersistentVolumeClaim)

                                          If the provisioner or an external controller can support the specified data source,

                                          it will create a new volume based on the contents of the specified data source.

                                          When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                          and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                          If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                        properties:
                                          apiGroup:
                                            description: 'APIGroup is the group for the resource being referenced.

                                              If APIGroup is not specified, the specified Kind must be in the core API group.

                                              For any other third-party types, APIGroup is required.'
                                            type: string
                                          kind:
                                            description: Kind is the type of resource being referenced
                                            type: string
                                          name:
                                            description: Name is the name of resource being referenced
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      dataSourceRef:
                                        description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                                        properties:
                                          apiGroup:
                                            description: 'APIGroup is the group for the resource being referenced.

                                              If APIGroup is not specified, the specified Kind must be in the core API group.

                                              For any other third-party types, APIGroup is required.'
                                            type: string
                                          kind:
                                            description: Kind is the type of resource being referenced
                                            type: string
                                          name:
                                            description: Name is the name of resource being referenced
                                            type: string
                                          namespace:
                                            description: 'Namespace is the namespace of resource being referenced

                                              Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                              (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                            type: string
                                        required:
                                        - kind
                                        - name
                                        type: object
                                      resources:
                                        description: 'resources represents the minimum resources the volume should have.

                                          If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                          that are lower than previous value but must still be higher than capacity recorded in the

                                          status field of the claim.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                        properties:
                                          limits:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Limits describes the maximum amount of compute resources allowed.

                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                          requests:
                                            additionalProperties:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            description: 'Requests describes the minimum amount of compute resources required.

                                              If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                              otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                              More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                            type: object
                                        type: object
                                      selector:
                                        description: selector is a label query over volumes to consider for binding.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                            items:
                                              description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                relates the key and values.'
                                              properties:
                                                key:
                                                  description: key is the label key that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: 'operator represents a key''s relationship to a set of values.

                                                    Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                  type: string
                                                values:
                                                  description: 'values is an array of string values. If the operator is In or NotIn,

                                                    the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                    the values array must be empty. This array is replaced during a strategic

                                                    merge patch.'
                                                  items:
                                                    type: string
                                                  type: array
                                                  x-kubernetes-list-type: atomic
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                            x-kubernetes-list-type: atomic
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                              map is equivalent to an element of matchExpressions, whose key field is "key", the

                                              operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                            type: object
                                        type: object
                                        x-kubernetes-map-type: atomic
                                      storageClassName:
                                        description: 'storageClassName is the name of the StorageClass required by the claim.

                                          More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                        type: string
                                      volumeAttributesClassName:
                                        description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                          If specified, the CSI driver will create or update the volume with the attributes defined

                                          in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                          it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                          will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                          If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                          will be set by the persistentvolume controller if it exists.

                                          If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                          set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                          exists.

                                          More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                          (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                                        type: string
                                      volumeMode:
                                        description: 'volumeMode defines what type of volume is required by the claim.

                                          Value of Filesystem is implied when not included in claim spec.'
                                        type: string
                                      volumeName:
                                        description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                        type: string
                                    type: object
                                required:
                                - spec
                                type: object
                            type: object
                          fc:
                            description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              lun:
                                description: 'lun is Optional: FC target lun number'
                                format: int32
                                type: integer
                              readOnly:
                                description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              targetWWNs:
                                description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              wwids:
                                description: 'wwids Optional: FC volume world wide identifiers (wwids)

                                  Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          flexVolume:
                            description: 'flexVolume represents a generic volume resource that is

                              provisioned/attached using an exec based plugin.

                              Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.'
                            properties:
                              driver:
                                description: driver is the name of the driver to use for this volume.
                                type: string
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.'
                                type: string
                              options:
                                additionalProperties:
                                  type: string
                                description: 'options is Optional: this field holds extra command options if any.'
                                type: object
                              readOnly:
                                description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef is Optional: secretRef is reference to the secret object containing

                                  sensitive information to pass to the plugin scripts. This may be

                                  empty if no secret object is specified. If the secret object

                                  contains more than one secret, all secrets are passed to the plugin

                                  scripts.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - driver
                            type: object
                          flocker:
                            description: 'flocker represents a Flocker volume attached to a kubelet''s host machine. This depends on the Flocker control service being running.

                              Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.'
                            properties:
                              datasetName:
                                description: 'datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker

                                  should be considered as deprecated'
                                type: string
                              datasetUUID:
                                description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
                                type: string
                            type: object
                          gcePersistentDisk:
                            description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree

                              gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                            properties:
                              fsType:
                                description: 'fsType is filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: string
                              partition:
                                description: 'partition is the partition in the volume that you want to mount.

                                  If omitted, the default is to mount by volume name.

                                  Examples: For volume /dev/sda1, you specify the partition as "1".

                                  Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                format: int32
                                type: integer
                              pdName:
                                description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                                type: boolean
                            required:
                            - pdName
                            type: object
                          gitRepo:
                            description: 'gitRepo represents a git repository at a particular revision.

                              Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an

                              EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir

                              into the Pod''s container.'
                            properties:
                              directory:
                                description: 'directory is the target directory name.

                                  Must not contain or start with ''..''.  If ''.'' is supplied, the volume directory will be the

                                  git repository.  Otherwise, if specified, the volume will contain the git repository in

                                  the subdirectory with the given name.'
                                type: string
                              repository:
                                description: repository is the URL
                                type: string
                              revision:
                                description: revision is the commit hash for the specified revision.
                                type: string
                            required:
                            - repository
                            type: object
                          glusterfs:
                            description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime.

                              Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.

                              More info: https://examples.k8s.io/volumes/glusterfs/README.md'
                            properties:
                              endpoints:
                                description: 'endpoints is the endpoint name that details Glusterfs topology.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: string
                              path:
                                description: 'path is the Glusterfs volume path.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions.

                                  Defaults to false.

                                  More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                                type: boolean
                            required:
                            - endpoints
                            - path
                            type: object
                          hostPath:
                            description: 'hostPath represents a pre-existing file or directory on the host

                              machine that is directly exposed to the container. This is generally

                              used for system agents or other privileged things that are allowed

                              to see the host machine. Most containers will NOT need this.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                            properties:
                              path:
                                description: 'path of the directory on the host.

                                  If the path is a symlink, it will follow the link to the real path.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                type: string
                              type:
                                description: 'type for HostPath Volume

                                  Defaults to ""

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                                type: string
                            required:
                            - path
                            type: object
                          image:
                            description: 'image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet''s host machine.

                              The volume is resolved at pod startup depending on which PullPolicy value is provided:


                              - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                              - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                              - IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.


                              The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.

                              A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.

                              The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.

                              The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.

                              The volume will be mounted read-only (ro) and non-executable files (noexec).

                              Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.

                              The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.'
                            properties:
                              pullPolicy:
                                description: 'Policy for pulling OCI objects. Possible values are:

                                  Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                                  Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                                  IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.

                                  Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.'
                                type: string
                              reference:
                                description: 'Required: Image or artifact reference to be used.

                                  Behaves in the same way as pod.spec.containers[*].image.

                                  Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.

                                  More info: https://kubernetes.io/docs/concepts/containers/images

                                  This field is optional to allow higher level config management to default or override

                                  container images in workload controllers like Deployments and StatefulSets.'
                                type: string
                            type: object
                          iscsi:
                            description: 'iscsi represents an ISCSI Disk resource that is attached to a

                              kubelet''s host machine and then exposed to the pod.

                              More info: https://examples.k8s.io/volumes/iscsi/README.md'
                            properties:
                              chapAuthDiscovery:
                                description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
                                type: boolean
                              chapAuthSession:
                                description: chapAuthSession defines whether support iSCSI Session CHAP authentication
                                type: boolean
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi'
                                type: string
                              initiatorName:
                                description: 'initiatorName is the custom iSCSI Initiator Name.

                                  If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface

                                  <target portal>:<volume name> will be created for the connection.'
                                type: string
                              iqn:
                                description: iqn is the target iSCSI Qualified Name.
                                type: string
                              iscsiInterface:
                                default: default
                                description: 'iscsiInterface is the interface Name that uses an iSCSI transport.

                                  Defaults to ''default'' (tcp).'
                                type: string
                              lun:
                                description: lun represents iSCSI Target Lun number.
                                format: int32
                                type: integer
                              portals:
                                description: 'portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port

                                  is other than default (typically TCP ports 860 and 3260).'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.'
                                type: boolean
                              secretRef:
                                description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              targetPortal:
                                description: 'targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port

                                  is other than default (typically TCP ports 860 and 3260).'
                                type: string
                            required:
                            - iqn
                            - lun
                            - targetPortal
                            type: object
                          name:
                            description: 'name of the volume.

                              Must be a DNS_LABEL and unique within the pod.

                              More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                            type: string
                          nfs:
                            description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                            properties:
                              path:
                                description: 'path that is exported by the NFS server.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the NFS export to be mounted with read-only permissions.

                                  Defaults to false.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: boolean
                              server:
                                description: 'server is the hostname or IP address of the NFS server.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                                type: string
                            required:
                            - path
                            - server
                            type: object
                          persistentVolumeClaim:
                            description: 'persistentVolumeClaimVolumeSource represents a reference to a

                              PersistentVolumeClaim in the same namespace.

                              More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                            properties:
                              claimName:
                                description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.

                                  More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                                type: string
                              readOnly:
                                description: 'readOnly Will force the ReadOnly setting in VolumeMounts.

                                  Default false.'
                                type: boolean
                            required:
                            - claimName
                            type: object
                          photonPersistentDisk:
                            description: 'photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.

                              Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              pdID:
                                description: pdID is the ID that identifies Photon Controller persistent disk
                                type: string
                            required:
                            - pdID
                            type: object
                          portworxVolume:
                            description: 'portworxVolume represents a portworx volume attached and mounted on kubelets host machine.

                              Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type

                              are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate

                              is on.'
                            properties:
                              fsType:
                                description: 'fSType represents the filesystem type to mount

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              volumeID:
                                description: volumeID uniquely identifies a Portworx volume
                                type: string
                            required:
                            - volumeID
                            type: object
                          projected:
                            description: projected items for all in one resources secrets, configmaps, and downward API
                            properties:
                              defaultMode:
                                description: 'defaultMode are the mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              sources:
                                description: 'sources is the list of volume projections. Each entry in this list

                                  handles one source.'
                                items:
                                  description: 'Projection that may be projected along with other supported volume types.

                                    Exactly one of these fields must be set.'
                                  properties:
                                    clusterTrustBundle:
                                      description: 'ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field

                                        of ClusterTrustBundle objects in an auto-updating file.


                                        Alpha, gated by the ClusterTrustBundleProjection feature gate.


                                        ClusterTrustBundle objects can either be selected by name, or by the

                                        combination of signer name and a label selector.


                                        Kubelet performs aggressive normalization of the PEM contents written

                                        into the pod filesystem.  Esoteric PEM features such as inter-block

                                        comments and block headers are stripped.  Certificates are deduplicated.

                                        The ordering of certificates within the file is arbitrary, and Kubelet

                                        may change the order over time.'
                                      properties:
                                        labelSelector:
                                          description: 'Select all ClusterTrustBundles that match this label selector.  Only has

                                            effect if signerName is set.  Mutually-exclusive with name.  If unset,

                                            interpreted as "match nothing".  If set but empty, interpreted as "match

                                            everything".'
                                          properties:
                                            matchExpressions:
                                              description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                              items:
                                                description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                                  relates the key and values.'
                                                properties:
                                                  key:
                                                    description: key is the label key that the selector applies to.
                                                    type: string
                                                  operator:
                                                    description: 'operator represents a key''s relationship to a set of values.

                                                      Valid operators are In, NotIn, Exists and DoesNotExist.'
                                                    type: string
                                                  values:
                                                    description: 'values is an array of string values. If the operator is In or NotIn,

                                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                      the values array must be empty. This array is replaced during a strategic

                                                      merge patch.'
                                                    items:
                                                      type: string
                                                    type: array
                                                    x-kubernetes-list-type: atomic
                                                required:
                                                - key
                                                - operator
                                                type: object
                                              type: array
                                              x-kubernetes-list-type: atomic
                                            matchLabels:
                                              additionalProperties:
                                                type: string
                                              description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                                map is equivalent to an element of matchExpressions, whose key field is "key", the

                                                operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                              type: object
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        name:
                                          description: 'Select a single ClusterTrustBundle by object name.  Mutually-exclusive

                                            with signerName and labelSelector.'
                                          type: string
                                        optional:
                                          description: 'If true, don''t block pod startup if the referenced ClusterTrustBundle(s)

                                            aren''t available.  If using name, then the named ClusterTrustBundle is

                                            allowed not to exist.  If using signerName, then the combination of

                                            signerName and labelSelector is allowed to match zero

                                            ClusterTrustBundles.'
                                          type: boolean
                                        path:
                                          description: Relative path from the volume root to write the bundle.
                                          type: string
                                        signerName:
                                          description: 'Select all ClusterTrustBundles that match this signer name.

                                            Mutually-exclusive with name.  The contents of all selected

                                            ClusterTrustBundles will be unified and deduplicated.'
                                          type: string
                                      required:
                                      - path
                                      type: object
                                    configMap:
                                      description: configMap information about the configMap data to project
                                      properties:
                                        items:
                                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                            ConfigMap will be projected into the volume as a file whose name is the

                                            key and content is the value. If specified, the listed keys will be

                                            projected into the specified paths, and unlisted keys will not be

                                            present. If a key is specified which is not present in the ConfigMap,

                                            the volume setup will error unless it is marked optional. Paths must be

                                            relative and may not contain the ''..'' path or start with ''..''.'
                                          items:
                                            description: Maps a string key to a path within a volume.
                                            properties:
                                              key:
                                                description: key is the key to project.
                                                type: string
                                              mode:
                                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'path is the relative path of the file to map the key to.

                                                  May not be an absolute path.

                                                  May not contain the path element ''..''.

                                                  May not start with the string ''..''.'
                                                type: string
                                            required:
                                            - key
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: optional specify whether the ConfigMap or its keys must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    downwardAPI:
                                      description: downwardAPI information about the downwardAPI data to project
                                      properties:
                                        items:
                                          description: Items is a list of DownwardAPIVolume file
                                          items:
                                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                            properties:
                                              fieldRef:
                                                description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                                properties:
                                                  apiVersion:
                                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                                    type: string
                                                  fieldPath:
                                                    description: Path of the field to select in the specified API version.
                                                    type: string
                                                required:
                                                - fieldPath
                                                type: object
                                                x-kubernetes-map-type: atomic
                                              mode:
                                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                                  between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                                type: string
                                              resourceFieldRef:
                                                description: 'Selects a resource of the container: only resources limits and requests

                                                  (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                                properties:
                                                  containerName:
                                                    description: 'Container name: required for volumes, optional for env vars'
                                                    type: string
                                                  divisor:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Specifies the output format of the exposed resources, defaults to "1"
                                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                    x-kubernetes-int-or-string: true
                                                  resource:
                                                    description: 'Required: resource to select'
                                                    type: string
                                                required:
                                                - resource
                                                type: object
                                                x-kubernetes-map-type: atomic
                                            required:
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                      type: object
                                    secret:
                                      description: secret information about the secret data to project
                                      properties:
                                        items:
                                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                            Secret will be projected into the volume as a file whose name is the

                                            key and content is the value. If specified, the listed keys will be

                                            projected into the specified paths, and unlisted keys will not be

                                            present. If a key is specified which is not present in the Secret,

                                            the volume setup will error unless it is marked optional. Paths must be

                                            relative and may not contain the ''..'' path or start with ''..''.'
                                          items:
                                            description: Maps a string key to a path within a volume.
                                            properties:
                                              key:
                                                description: key is the key to project.
                                                type: string
                                              mode:
                                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                                  If not specified, the volume defaultMode will be used.

                                                  This might be in conflict with other options that affect the file

                                                  mode, like fsGroup, and the result can be other mode bits set.'
                                                format: int32
                                                type: integer
                                              path:
                                                description: 'path is the relative path of the file to map the key to.

                                                  May not be an absolute path.

                                                  May not contain the path element ''..''.

                                                  May not start with the string ''..''.'
                                                type: string
                                            required:
                                            - key
                                            - path
                                            type: object
                                          type: array
                                          x-kubernetes-list-type: atomic
                                        name:
                                          default: ''
                                          description: 'Name of the referent.

                                            This field is effectively required, but due to backwards compatibility is

                                            allowed to be empty. Instances of this type with an empty value here are

                                            almost certainly wrong.

                                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                          type: string
                                        optional:
                                          description: optional field specify whether the Secret or its key must be defined
                                          type: boolean
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    serviceAccountToken:
                                      description: serviceAccountToken is information about the serviceAccountToken data to project
                                      properties:
                                        audience:
                                          description: 'audience is the intended audience of the token. A recipient of a token

                                            must identify itself with an identifier specified in the audience of the

                                            token, and otherwise should reject the token. The audience defaults to the

                                            identifier of the apiserver.'
                                          type: string
                                        expirationSeconds:
                                          description: 'expirationSeconds is the requested duration of validity of the service

                                            account token. As the token approaches expiration, the kubelet volume

                                            plugin will proactively rotate the service account token. The kubelet will

                                            start trying to rotate the token if the token is older than 80 percent of

                                            its time to live or if the token is older than 24 hours.Defaults to 1 hour

                                            and must be at least 10 minutes.'
                                          format: int64
                                          type: integer
                                        path:
                                          description: 'path is the path relative to the mount point of the file to project the

                                            token into.'
                                          type: string
                                      required:
                                      - path
                                      type: object
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                            type: object
                          quobyte:
                            description: 'quobyte represents a Quobyte mount on the host that shares a pod''s lifetime.

                              Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.'
                            properties:
                              group:
                                description: 'group to map volume access to

                                  Default is no group'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the Quobyte volume to be mounted with read-only permissions.

                                  Defaults to false.'
                                type: boolean
                              registry:
                                description: 'registry represents a single or multiple Quobyte Registry services

                                  specified as a string as host:port pair (multiple entries are separated with commas)

                                  which acts as the central registry for volumes'
                                type: string
                              tenant:
                                description: 'tenant owning the given Quobyte volume in the Backend

                                  Used with dynamically provisioned Quobyte volumes, value is set by the plugin'
                                type: string
                              user:
                                description: 'user to map volume access to

                                  Defaults to serivceaccount user'
                                type: string
                              volume:
                                description: volume is a string that references an already created Quobyte volume by name.
                                type: string
                            required:
                            - registry
                            - volume
                            type: object
                          rbd:
                            description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime.

                              Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.

                              More info: https://examples.k8s.io/volumes/rbd/README.md'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type of the volume that you want to mount.

                                  Tip: Ensure that the filesystem type is supported by the host operating system.

                                  Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd'
                                type: string
                              image:
                                description: 'image is the rados image name.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              keyring:
                                default: /etc/ceph/keyring
                                description: 'keyring is the path to key ring for RBDUser.

                                  Default is /etc/ceph/keyring.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              monitors:
                                description: 'monitors is a collection of Ceph monitors.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: atomic
                              pool:
                                default: rbd
                                description: 'pool is the rados pool name.

                                  Default is rbd.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                              readOnly:
                                description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                                  Defaults to false.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: boolean
                              secretRef:
                                description: 'secretRef is name of the authentication secret for RBDUser. If provided

                                  overrides keyring.

                                  Default is nil.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              user:
                                default: admin
                                description: 'user is the rados user name.

                                  Default is admin.

                                  More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                                type: string
                            required:
                            - image
                            - monitors
                            type: object
                          scaleIO:
                            description: 'scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

                              Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.'
                            properties:
                              fsType:
                                default: xfs
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs".

                                  Default is "xfs".'
                                type: string
                              gateway:
                                description: gateway is the host address of the ScaleIO API Gateway.
                                type: string
                              protectionDomain:
                                description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
                                type: string
                              readOnly:
                                description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef references to the secret for ScaleIO user and other

                                  sensitive information. If this is not provided, Login operation will fail.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              sslEnabled:
                                description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
                                type: boolean
                              storageMode:
                                default: ThinProvisioned
                                description: 'storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

                                  Default is ThinProvisioned.'
                                type: string
                              storagePool:
                                description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
                                type: string
                              system:
                                description: system is the name of the storage system as configured in ScaleIO.
                                type: string
                              volumeName:
                                description: 'volumeName is the name of a volume already created in the ScaleIO system

                                  that is associated with this volume source.'
                                type: string
                            required:
                            - gateway
                            - secretRef
                            - system
                            type: object
                          secret:
                            description: 'secret represents a secret that should populate this volume.

                              More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                            properties:
                              defaultMode:
                                description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values

                                  for mode bits. Defaults to 0644.

                                  Directories within the path are not affected by this setting.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              items:
                                description: 'items If unspecified, each key-value pair in the Data field of the referenced

                                  Secret will be projected into the volume as a file whose name is the

                                  key and content is the value. If specified, the listed keys will be

                                  projected into the specified paths, and unlisted keys will not be

                                  present. If a key is specified which is not present in the Secret,

                                  the volume setup will error unless it is marked optional. Paths must be

                                  relative and may not contain the ''..'' path or start with ''..''.'
                                items:
                                  description: Maps a string key to a path within a volume.
                                  properties:
                                    key:
                                      description: key is the key to project.
                                      type: string
                                    mode:
                                      description: 'mode is Optional: mode bits used to set permissions on this file.

                                        Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                        YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                        If not specified, the volume defaultMode will be used.

                                        This might be in conflict with other options that affect the file

                                        mode, like fsGroup, and the result can be other mode bits set.'
                                      format: int32
                                      type: integer
                                    path:
                                      description: 'path is the relative path of the file to map the key to.

                                        May not be an absolute path.

                                        May not contain the path element ''..''.

                                        May not start with the string ''..''.'
                                      type: string
                                  required:
                                  - key
                                  - path
                                  type: object
                                type: array
                                x-kubernetes-list-type: atomic
                              optional:
                                description: optional field specify whether the Secret or its keys must be defined
                                type: boolean
                              secretName:
                                description: 'secretName is the name of the secret in the pod''s namespace to use.

                                  More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                                type: string
                            type: object
                          storageos:
                            description: 'storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

                              Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.'
                            properties:
                              fsType:
                                description: 'fsType is the filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              readOnly:
                                description: 'readOnly defaults to false (read/write). ReadOnly here will force

                                  the ReadOnly setting in VolumeMounts.'
                                type: boolean
                              secretRef:
                                description: 'secretRef specifies the secret to use for obtaining the StorageOS API

                                  credentials.  If not specified, default values will be attempted.'
                                properties:
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                type: object
                                x-kubernetes-map-type: atomic
                              volumeName:
                                description: 'volumeName is the human-readable name of the StorageOS volume.  Volume

                                  names are only unique within a namespace.'
                                type: string
                              volumeNamespace:
                                description: 'volumeNamespace specifies the scope of the volume within StorageOS.  If no

                                  namespace is specified then the Pod''s namespace will be used.  This allows the

                                  Kubernetes name scoping to be mirrored within StorageOS for tighter integration.

                                  Set VolumeName to any name to override the default behaviour.

                                  Set to "default" if you are not using namespaces within StorageOS.

                                  Namespaces that do not pre-exist within StorageOS will be created.'
                                type: string
                            type: object
                          vsphereVolume:
                            description: 'vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.

                              Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type

                              are redirected to the csi.vsphere.vmware.com CSI driver.'
                            properties:
                              fsType:
                                description: 'fsType is filesystem type to mount.

                                  Must be a filesystem type supported by the host operating system.

                                  Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                                type: string
                              storagePolicyID:
                                description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
                                type: string
                              storagePolicyName:
                                description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
                                type: string
                              volumePath:
                                description: volumePath is the path that identifies vSphere volume vmdk
                                type: string
                            required:
                            - volumePath
                            type: object
                        required:
                        - name
                        type: object
                      type: array
                  type: object
                maxItems: 200
                type: array
                x-kubernetes-validations:
                - message: template must have at most one template type
                  rule: 'self.all(t, (has(t.container) ? 1 : 0) + (has(t.script) ? 1 : 0) + (has(t.dag) ? 1 : 0) + (has(t.steps) ? 1 : 0) + (has(t.resource) ? 1 : 0) + (has(t.suspend) ? 1 : 0) + (has(t.containerSet) ? 1 : 0) + (has(t.data) ? 1 : 0) + (has(t.http) ? 1 : 0) + (has(t.plugin) ? 1 : 0) <= 1)'
                - message: timeout cannot be applied to steps or dag templates
                  rule: self.all(t, !(has(t.timeout) && t.timeout != "" && (has(t.steps) || has(t.dag))))
                - message: activeDeadlineSeconds is only valid for leaf templates
                  rule: self.all(t, !(has(t.activeDeadlineSeconds) && (has(t.steps) || has(t.dag))))
              tolerations:
                description: Tolerations to apply to workflow pods.
                items:
                  description: 'The pod this Toleration is attached to tolerates any taint that matches

                    the triple <key,value,effect> using the matching operator <operator>.'
                  properties:
                    effect:
                      description: 'Effect indicates the taint effect to match. Empty means match all taint effects.

                        When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.'
                      type: string
                    key:
                      description: 'Key is the taint key that the toleration applies to. Empty means match all taint keys.

                        If the key is empty, operator must be Exists; this combination means to match all values and all keys.'
                      type: string
                    operator:
                      description: 'Operator represents a key''s relationship to the value.

                        Valid operators are Exists and Equal. Defaults to Equal.

                        Exists is equivalent to wildcard for value, so that a pod can

                        tolerate all taints of a particular category.'
                      type: string
                    tolerationSeconds:
                      description: 'TolerationSeconds represents the period of time the toleration (which must be

                        of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,

                        it is not set, which means tolerate the taint forever (do not evict). Zero and

                        negative values will be treated as 0 (evict immediately) by the system.'
                      format: int64
                      type: integer
                    value:
                      description: 'Value is the taint value the toleration matches to.

                        If the operator is Exists, the value should be empty, otherwise just a regular string.'
                      type: string
                  type: object
                type: array
              ttlStrategy:
                description: 'TTLStrategy limits the lifetime of a Workflow that has finished execution depending on if it

                  Succeeded or Failed. If this struct is set, once the Workflow finishes, it will be

                  deleted after the time to live expires. If this field is unset,

                  the controller config map will hold the default values.'
                properties:
                  secondsAfterCompletion:
                    description: SecondsAfterCompletion is the number of seconds to live after completion
                    format: int32
                    type: integer
                  secondsAfterFailure:
                    description: SecondsAfterFailure is the number of seconds to live after failure
                    format: int32
                    type: integer
                  secondsAfterSuccess:
                    description: SecondsAfterSuccess is the number of seconds to live after success
                    format: int32
                    type: integer
                type: object
              volumeClaimGC:
                description: VolumeClaimGC describes the strategy to use when deleting volumes from completed workflows
                properties:
                  strategy:
                    description: Strategy is the strategy to use. One of "OnWorkflowCompletion", "OnWorkflowSuccess". Defaults to "OnWorkflowSuccess"
                    type: string
                type: object
              volumeClaimTemplates:
                description: 'VolumeClaimTemplates is a list of claims that containers are allowed to reference.

                  The Workflow controller will create the claims at the beginning of the workflow

                  and delete the claims upon completion of the workflow'
                items:
                  description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
                  properties:
                    apiVersion:
                      description: 'APIVersion defines the versioned schema of this representation of an object.

                        Servers should convert recognized schemas to the latest internal value, and

                        may reject unrecognized values.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
                      type: string
                    kind:
                      description: 'Kind is a string value representing the REST resource this object represents.

                        Servers may infer this from the endpoint the client submits requests to.

                        Cannot be updated.

                        In CamelCase.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    metadata:
                      description: 'Standard object''s metadata.

                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          type: object
                        finalizers:
                          items:
                            type: string
                          type: array
                        generateName:
                          type: string
                        labels:
                          additionalProperties:
                            type: string
                          type: object
                        name:
                          type: string
                        namespace:
                          type: string
                      type: object
                    spec:
                      description: 'spec defines the desired characteristics of a volume requested by a pod author.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        accessModes:
                          description: 'accessModes contains the desired access modes the volume should have.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        dataSource:
                          description: 'dataSource field can be used to specify either:

                            * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                            * An existing PVC (PersistentVolumeClaim)

                            If the provisioner or an external controller can support the specified data source,

                            it will create a new volume based on the contents of the specified data source.

                            When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                            and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                            If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                          properties:
                            apiGroup:
                              description: 'APIGroup is the group for the resource being referenced.

                                If APIGroup is not specified, the specified Kind must be in the core API group.

                                For any other third-party types, APIGroup is required.'
                              type: string
                            kind:
                              description: Kind is the type of resource being referenced
                              type: string
                            name:
                              description: Name is the name of resource being referenced
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                          x-kubernetes-map-type: atomic
                        dataSourceRef:
                          description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                          properties:
                            apiGroup:
                              description: 'APIGroup is the group for the resource being referenced.

                                If APIGroup is not specified, the specified Kind must be in the core API group.

                                For any other third-party types, APIGroup is required.'
                              type: string
                            kind:
                              description: Kind is the type of resource being referenced
                              type: string
                            name:
                              description: Name is the name of resource being referenced
                              type: string
                            namespace:
                              description: 'Namespace is the namespace of resource being referenced

                                Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                              type: string
                          required:
                          - kind
                          - name
                          type: object
                        resources:
                          description: 'resources represents the minimum resources the volume should have.

                            If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                            that are lower than previous value but must still be higher than capacity recorded in the

                            status field of the claim.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                          properties:
                            limits:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Limits describes the maximum amount of compute resources allowed.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                            requests:
                              additionalProperties:
                                anyOf:
                                - type: integer
                                - type: string
                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                x-kubernetes-int-or-string: true
                              description: 'Requests describes the minimum amount of compute resources required.

                                If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                              type: object
                          type: object
                        selector:
                          description: selector is a label query over volumes to consider for binding.
                          properties:
                            matchExpressions:
                              description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                              items:
                                description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                  relates the key and values.'
                                properties:
                                  key:
                                    description: key is the label key that the selector applies to.
                                    type: string
                                  operator:
                                    description: 'operator represents a key''s relationship to a set of values.

                                      Valid operators are In, NotIn, Exists and DoesNotExist.'
                                    type: string
                                  values:
                                    description: 'values is an array of string values. If the operator is In or NotIn,

                                      the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                      the values array must be empty. This array is replaced during a strategic

                                      merge patch.'
                                    items:
                                      type: string
                                    type: array
                                    x-kubernetes-list-type: atomic
                                required:
                                - key
                                - operator
                                type: object
                              type: array
                              x-kubernetes-list-type: atomic
                            matchLabels:
                              additionalProperties:
                                type: string
                              description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                map is equivalent to an element of matchExpressions, whose key field is "key", the

                                operator is "In", and the values array contains only "value". The requirements are ANDed.'
                              type: object
                          type: object
                          x-kubernetes-map-type: atomic
                        storageClassName:
                          description: 'storageClassName is the name of the StorageClass required by the claim.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                          type: string
                        volumeAttributesClassName:
                          description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                            If specified, the CSI driver will create or update the volume with the attributes defined

                            in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                            it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                            will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                            If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                            will be set by the persistentvolume controller if it exists.

                            If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                            set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                            exists.

                            More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                            (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                          type: string
                        volumeMode:
                          description: 'volumeMode defines what type of volume is required by the claim.

                            Value of Filesystem is implied when not included in claim spec.'
                          type: string
                        volumeName:
                          description: volumeName is the binding reference to the PersistentVolume backing this claim.
                          type: string
                      type: object
                    status:
                      description: 'status represents the current information/status of a persistent volume claim.

                        Read-only.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        accessModes:
                          description: 'accessModes contains the actual access modes the volume backing the PVC has.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        allocatedResourceStatuses:
                          additionalProperties:
                            description: 'When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource

                              that it does not recognizes, then it should ignore that update and let other controllers

                              handle it.'
                            type: string
                          description: "allocatedResourceStatuses stores status of resource being resized for the given PVC.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n     - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
                          type: object
                          x-kubernetes-map-type: granular
                        allocatedResources:
                          additionalProperties:
                            anyOf:
                            - type: integer
                            - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: "allocatedResources tracks the resources allocated to a PVC including its capacity.\nKey names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\nreserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation\nis requested.\nFor storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\nIf allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\nIf a volume expansion capacity request is lowered, allocatedResources is only\nlowered if there are no expansion operations in progress and if the actual volume capacity\nis equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName\nshould ignore the update for the purpose it was designed. For example - a controller that\nonly is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\nresources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature."
                          type: object
                        capacity:
                          additionalProperties:
                            anyOf:
                            - type: integer
                            - type: string
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          description: capacity represents the actual resources of the underlying volume.
                          type: object
                        conditions:
                          description: 'conditions is the current Condition of persistent volume claim. If underlying persistent volume is being

                            resized then the Condition will be set to ''Resizing''.'
                          items:
                            description: PersistentVolumeClaimCondition contains details about state of pvc
                            properties:
                              lastProbeTime:
                                description: lastProbeTime is the time we probed the condition.
                                format: date-time
                                type: string
                              lastTransitionTime:
                                description: lastTransitionTime is the time the condition transitioned from one status to another.
                                format: date-time
                                type: string
                              message:
                                description: message is the human-readable message indicating details about last transition.
                                type: string
                              reason:
                                description: 'reason is a unique, this should be a short, machine understandable string that gives the reason

                                  for condition''s last transition. If it reports "Resizing" that means the underlying

                                  persistent volume is being resized.'
                                type: string
                              status:
                                description: 'Status is the status of the condition.

                                  Can be True, False, Unknown.

                                  More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required'
                                type: string
                              type:
                                description: 'Type is the type of the condition.

                                  More info: 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'
                                type: string
                            required:
                            - status
                            - type
                            type: object
                          type: array
                          x-kubernetes-list-map-keys:
                          - type
                          x-kubernetes-list-type: map
                        currentVolumeAttributesClassName:
                          description: 'currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.

                            When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim

                            This is a beta field and requires enabling VolumeAttributesClass feature (off by default).'
                          type: string
                        modifyVolumeStatus:
                          description: 'ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.

                            When this is unset, there is no ModifyVolume operation being attempted.

                            This is a beta field and requires enabling VolumeAttributesClass feature (off by default).'
                          properties:
                            status:
                              description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n   Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n   the specified VolumeAttributesClass not existing.\n - InProgress\n   InProgress indicates that the volume is being modified.\n - Infeasible\n  Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t  resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately."
                              type: string
                            targetVolumeAttributesClassName:
                              description: targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled
                              type: string
                          required:
                          - status
                          type: object
                        phase:
                          description: phase represents the current phase of PersistentVolumeClaim.
                          type: string
                      type: object
                  type: object
                type: array
              volumes:
                description: Volumes is a list of volumes that can be mounted by containers in a workflow.
                items:
                  description: Volume represents a named volume in a pod that may be accessed by any container in the pod.
                  properties:
                    awsElasticBlockStore:
                      description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree

                        awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: string
                        partition:
                          description: 'partition is the partition in the volume that you want to mount.

                            If omitted, the default is to mount by volume name.

                            Examples: For volume /dev/sda1, you specify the partition as "1".

                            Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
                          format: int32
                          type: integer
                        readOnly:
                          description: 'readOnly value true will force the readOnly setting in VolumeMounts.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: boolean
                        volumeID:
                          description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
                          type: string
                      required:
                      - volumeID
                      type: object
                    azureDisk:
                      description: 'azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

                        Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type

                        are redirected to the disk.csi.azure.com CSI driver.'
                      properties:
                        cachingMode:
                          description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
                          type: string
                        diskName:
                          description: diskName is the Name of the data disk in the blob storage
                          type: string
                        diskURI:
                          description: diskURI is the URI of data disk in the blob storage
                          type: string
                        fsType:
                          default: ext4
                          description: 'fsType is Filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        kind:
                          description: 'kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared'
                          type: string
                        readOnly:
                          default: false
                          description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                      required:
                      - diskName
                      - diskURI
                      type: object
                    azureFile:
                      description: 'azureFile represents an Azure File Service mount on the host and bind mount to the pod.

                        Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type

                        are redirected to the file.csi.azure.com CSI driver.'
                      properties:
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretName:
                          description: secretName is the  name of secret that contains Azure Storage Account Name and Key
                          type: string
                        shareName:
                          description: shareName is the azure share Name
                          type: string
                      required:
                      - secretName
                      - shareName
                      type: object
                    cephfs:
                      description: 'cephFS represents a Ceph FS mount on the host that shares a pod''s lifetime.

                        Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.'
                      properties:
                        monitors:
                          description: 'monitors is Required: Monitors is a collection of Ceph monitors

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        path:
                          description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
                          type: string
                        readOnly:
                          description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: boolean
                        secretFile:
                          description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: string
                        secretRef:
                          description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        user:
                          description: 'user is optional: User is the rados user name, default is admin

                            More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
                          type: string
                      required:
                      - monitors
                      type: object
                    cinder:
                      description: 'cinder represents a cinder volume attached and mounted on kubelets host machine.

                        Deprecated: Cinder is deprecated. All operations for the in-tree cinder type

                        are redirected to the cinder.csi.openstack.org CSI driver.

                        More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: boolean
                        secretRef:
                          description: 'secretRef is optional: points to a secret object containing parameters used to connect

                            to OpenStack.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        volumeID:
                          description: 'volumeID used to identify the volume in cinder.

                            More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
                          type: string
                      required:
                      - volumeID
                      type: object
                    configMap:
                      description: configMap represents a configMap that should populate this volume
                      properties:
                        defaultMode:
                          description: 'defaultMode is optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: 'items if unspecified, each key-value pair in the Data field of the referenced

                            ConfigMap will be projected into the volume as a file whose name is the

                            key and content is the value. If specified, the listed keys will be

                            projected into the specified paths, and unlisted keys will not be

                            present. If a key is specified which is not present in the ConfigMap,

                            the volume setup will error unless it is marked optional. Paths must be

                            relative and may not contain the ''..'' path or start with ''..''.'
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
                                type: string
                              mode:
                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'path is the relative path of the file to map the key to.

                                  May not be an absolute path.

                                  May not contain the path element ''..''.

                                  May not start with the string ''..''.'
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        name:
                          default: ''
                          description: 'Name of the referent.

                            This field is effectively required, but due to backwards compatibility is

                            allowed to be empty. Instances of this type with an empty value here are

                            almost certainly wrong.

                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                          type: string
                        optional:
                          description: optional specify whether the ConfigMap or its keys must be defined
                          type: boolean
                      type: object
                      x-kubernetes-map-type: atomic
                    csi:
                      description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
                      properties:
                        driver:
                          description: 'driver is the name of the CSI driver that handles this volume.

                            Consult with your admin for the correct name as registered in the cluster.'
                          type: string
                        fsType:
                          description: 'fsType to mount. Ex. "ext4", "xfs", "ntfs".

                            If not provided, the empty value is passed to the associated CSI driver

                            which will determine the default filesystem to apply.'
                          type: string
                        nodePublishSecretRef:
                          description: 'nodePublishSecretRef is a reference to the secret object containing

                            sensitive information to pass to the CSI driver to complete the CSI

                            NodePublishVolume and NodeUnpublishVolume calls.

                            This field is optional, and  may be empty if no secret is required. If the

                            secret object contains more than one secret, all secret references are passed.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        readOnly:
                          description: 'readOnly specifies a read-only configuration for the volume.

                            Defaults to false (read/write).'
                          type: boolean
                        volumeAttributes:
                          additionalProperties:
                            type: string
                          description: 'volumeAttributes stores driver-specific properties that are passed to the CSI

                            driver. Consult your driver''s documentation for supported values.'
                          type: object
                      required:
                      - driver
                      type: object
                    downwardAPI:
                      description: downwardAPI represents downward API about the pod that should populate this volume
                      properties:
                        defaultMode:
                          description: 'Optional: mode bits to use on created files by default. Must be a

                            Optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: Items is a list of downward API volume file
                          items:
                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                            properties:
                              fieldRef:
                                description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                properties:
                                  apiVersion:
                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                    type: string
                                  fieldPath:
                                    description: Path of the field to select in the specified API version.
                                    type: string
                                required:
                                - fieldPath
                                type: object
                                x-kubernetes-map-type: atomic
                              mode:
                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                  between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                type: string
                              resourceFieldRef:
                                description: 'Selects a resource of the container: only resources limits and requests

                                  (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                properties:
                                  containerName:
                                    description: 'Container name: required for volumes, optional for env vars'
                                    type: string
                                  divisor:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Specifies the output format of the exposed resources, defaults to "1"
                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                    x-kubernetes-int-or-string: true
                                  resource:
                                    description: 'Required: resource to select'
                                    type: string
                                required:
                                - resource
                                type: object
                                x-kubernetes-map-type: atomic
                            required:
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    emptyDir:
                      description: 'emptyDir represents a temporary directory that shares a pod''s lifetime.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                      properties:
                        medium:
                          description: 'medium represents what type of storage medium should back this directory.

                            The default is "" which means to use the node''s default medium.

                            Must be an empty string (default) or Memory.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                          type: string
                        sizeLimit:
                          anyOf:
                          - type: integer
                          - type: string
                          description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume.

                            The size limit is also applicable for memory medium.

                            The maximum usage on memory medium EmptyDir would be the minimum value between

                            the SizeLimit specified here and the sum of memory limits of all containers in a pod.

                            The default is nil which means that the limit is undefined.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                      type: object
                    ephemeral:
                      description: "ephemeral represents a volume that is handled by a cluster storage driver.\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n   tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\n   information on the connection between this volume type\n   and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time."
                      properties:
                        volumeClaimTemplate:
                          description: 'Will be used to create a stand-alone PVC to provision the volume.

                            The pod in which this EphemeralVolumeSource is embedded will be the

                            owner of the PVC, i.e. the PVC will be deleted together with the

                            pod.  The name of the PVC will be `<pod name>-<volume name>` where

                            `<volume name>` is the name from the `PodSpec.Volumes` array

                            entry. Pod validation will reject the pod if the concatenated name

                            is not valid for a PVC (for example, too long).


                            An existing PVC with that name that is not owned by the pod

                            will *not* be used for the pod to avoid using an unrelated

                            volume by mistake. Starting the pod is then blocked until

                            the unrelated PVC is removed. If such a pre-created PVC is

                            meant to be used by the pod, the PVC has to updated with an

                            owner reference to the pod once the pod exists. Normally

                            this should not be necessary, but it may be useful when

                            manually reconstructing a broken cluster.


                            This field is read-only and no changes will be made by Kubernetes

                            to the PVC after it has been created.


                            Required, must not be nil.'
                          properties:
                            metadata:
                              description: 'May contain labels and annotations that will be copied into the PVC

                                when creating it. No other fields are allowed and will be rejected during

                                validation.'
                              properties:
                                annotations:
                                  additionalProperties:
                                    type: string
                                  type: object
                                finalizers:
                                  items:
                                    type: string
                                  type: array
                                generateName:
                                  type: string
                                labels:
                                  additionalProperties:
                                    type: string
                                  type: object
                                name:
                                  type: string
                                namespace:
                                  type: string
                              type: object
                            spec:
                              description: 'The specification for the PersistentVolumeClaim. The entire content is

                                copied unchanged into the PVC that gets created from this

                                template. The same fields as in a PersistentVolumeClaim

                                are also valid here.'
                              properties:
                                accessModes:
                                  description: 'accessModes contains the desired access modes the volume should have.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                                  items:
                                    type: string
                                  type: array
                                  x-kubernetes-list-type: atomic
                                dataSource:
                                  description: 'dataSource field can be used to specify either:

                                    * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)

                                    * An existing PVC (PersistentVolumeClaim)

                                    If the provisioner or an external controller can support the specified data source,

                                    it will create a new volume based on the contents of the specified data source.

                                    When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,

                                    and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.

                                    If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
                                  properties:
                                    apiGroup:
                                      description: 'APIGroup is the group for the resource being referenced.

                                        If APIGroup is not specified, the specified Kind must be in the core API group.

                                        For any other third-party types, APIGroup is required.'
                                      type: string
                                    kind:
                                      description: Kind is the type of resource being referenced
                                      type: string
                                    name:
                                      description: Name is the name of resource being referenced
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                  x-kubernetes-map-type: atomic
                                dataSourceRef:
                                  description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\nvolume is desired. This may be any object from a non-empty API group (non\ncore object) or a PersistentVolumeClaim object.\nWhen this field is specified, volume binding will only succeed if the type of\nthe specified object matches some installed volume populator or dynamic\nprovisioner.\nThis field will replace the functionality of the dataSource field and as such\nif both fields are non-empty, they must have the same value. For backwards\ncompatibility, when namespace isn't specified in dataSourceRef,\nboth fields (dataSource and dataSourceRef) will be set to the same\nvalue automatically if one of them is empty and the other is non-empty.\nWhen namespace is specified in dataSourceRef,\ndataSource isn't set to the same value and must be empty.\nThere are three important differences between dataSource and dataSourceRef:\n* While dataSource only allows two specific types of objects, dataSourceRef\n  allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n  preserves all values, and generates an error if a disallowed value is\n  specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n  in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled."
                                  properties:
                                    apiGroup:
                                      description: 'APIGroup is the group for the resource being referenced.

                                        If APIGroup is not specified, the specified Kind must be in the core API group.

                                        For any other third-party types, APIGroup is required.'
                                      type: string
                                    kind:
                                      description: Kind is the type of resource being referenced
                                      type: string
                                    name:
                                      description: Name is the name of resource being referenced
                                      type: string
                                    namespace:
                                      description: 'Namespace is the namespace of resource being referenced

                                        Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace''s owner to accept the reference. See the ReferenceGrant documentation for details.

                                        (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
                                      type: string
                                  required:
                                  - kind
                                  - name
                                  type: object
                                resources:
                                  description: 'resources represents the minimum resources the volume should have.

                                    If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements

                                    that are lower than previous value but must still be higher than capacity recorded in the

                                    status field of the claim.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                                  properties:
                                    limits:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      description: 'Limits describes the maximum amount of compute resources allowed.

                                        More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                      type: object
                                    requests:
                                      additionalProperties:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                        x-kubernetes-int-or-string: true
                                      description: 'Requests describes the minimum amount of compute resources required.

                                        If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,

                                        otherwise to an implementation-defined value. Requests cannot exceed Limits.

                                        More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                                      type: object
                                  type: object
                                selector:
                                  description: selector is a label query over volumes to consider for binding.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                      items:
                                        description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                          relates the key and values.'
                                        properties:
                                          key:
                                            description: key is the label key that the selector applies to.
                                            type: string
                                          operator:
                                            description: 'operator represents a key''s relationship to a set of values.

                                              Valid operators are In, NotIn, Exists and DoesNotExist.'
                                            type: string
                                          values:
                                            description: 'values is an array of string values. If the operator is In or NotIn,

                                              the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                              the values array must be empty. This array is replaced during a strategic

                                              merge patch.'
                                            items:
                                              type: string
                                            type: array
                                            x-kubernetes-list-type: atomic
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                      x-kubernetes-list-type: atomic
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                        map is equivalent to an element of matchExpressions, whose key field is "key", the

                                        operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                storageClassName:
                                  description: 'storageClassName is the name of the StorageClass required by the claim.

                                    More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                                  type: string
                                volumeAttributesClassName:
                                  description: 'volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

                                    If specified, the CSI driver will create or update the volume with the attributes defined

                                    in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,

                                    it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass

                                    will be applied to the claim but it''s not allowed to reset this field to empty string once it is set.

                                    If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass

                                    will be set by the persistentvolume controller if it exists.

                                    If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be

                                    set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource

                                    exists.

                                    More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/

                                    (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).'
                                  type: string
                                volumeMode:
                                  description: 'volumeMode defines what type of volume is required by the claim.

                                    Value of Filesystem is implied when not included in claim spec.'
                                  type: string
                                volumeName:
                                  description: volumeName is the binding reference to the PersistentVolume backing this claim.
                                  type: string
                              type: object
                          required:
                          - spec
                          type: object
                      type: object
                    fc:
                      description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        lun:
                          description: 'lun is Optional: FC target lun number'
                          format: int32
                          type: integer
                        readOnly:
                          description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        targetWWNs:
                          description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        wwids:
                          description: 'wwids Optional: FC volume world wide identifiers (wwids)

                            Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    flexVolume:
                      description: 'flexVolume represents a generic volume resource that is

                        provisioned/attached using an exec based plugin.

                        Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.'
                      properties:
                        driver:
                          description: driver is the name of the driver to use for this volume.
                          type: string
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.'
                          type: string
                        options:
                          additionalProperties:
                            type: string
                          description: 'options is Optional: this field holds extra command options if any.'
                          type: object
                        readOnly:
                          description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef is Optional: secretRef is reference to the secret object containing

                            sensitive information to pass to the plugin scripts. This may be

                            empty if no secret object is specified. If the secret object

                            contains more than one secret, all secrets are passed to the plugin

                            scripts.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                      required:
                      - driver
                      type: object
                    flocker:
                      description: 'flocker represents a Flocker volume attached to a kubelet''s host machine. This depends on the Flocker control service being running.

                        Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.'
                      properties:
                        datasetName:
                          description: 'datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker

                            should be considered as deprecated'
                          type: string
                        datasetUUID:
                          description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
                          type: string
                      type: object
                    gcePersistentDisk:
                      description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree

                        gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                      properties:
                        fsType:
                          description: 'fsType is filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: string
                        partition:
                          description: 'partition is the partition in the volume that you want to mount.

                            If omitted, the default is to mount by volume name.

                            Examples: For volume /dev/sda1, you specify the partition as "1".

                            Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          format: int32
                          type: integer
                        pdName:
                          description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
                          type: boolean
                      required:
                      - pdName
                      type: object
                    gitRepo:
                      description: 'gitRepo represents a git repository at a particular revision.

                        Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an

                        EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir

                        into the Pod''s container.'
                      properties:
                        directory:
                          description: 'directory is the target directory name.

                            Must not contain or start with ''..''.  If ''.'' is supplied, the volume directory will be the

                            git repository.  Otherwise, if specified, the volume will contain the git repository in

                            the subdirectory with the given name.'
                          type: string
                        repository:
                          description: repository is the URL
                          type: string
                        revision:
                          description: revision is the commit hash for the specified revision.
                          type: string
                      required:
                      - repository
                      type: object
                    glusterfs:
                      description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime.

                        Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.

                        More info: https://examples.k8s.io/volumes/glusterfs/README.md'
                      properties:
                        endpoints:
                          description: 'endpoints is the endpoint name that details Glusterfs topology.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: string
                        path:
                          description: 'path is the Glusterfs volume path.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions.

                            Defaults to false.

                            More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
                          type: boolean
                      required:
                      - endpoints
                      - path
                      type: object
                    hostPath:
                      description: 'hostPath represents a pre-existing file or directory on the host

                        machine that is directly exposed to the container. This is generally

                        used for system agents or other privileged things that are allowed

                        to see the host machine. Most containers will NOT need this.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                      properties:
                        path:
                          description: 'path of the directory on the host.

                            If the path is a symlink, it will follow the link to the real path.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                          type: string
                        type:
                          description: 'type for HostPath Volume

                            Defaults to ""

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
                          type: string
                      required:
                      - path
                      type: object
                    image:
                      description: 'image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet''s host machine.

                        The volume is resolved at pod startup depending on which PullPolicy value is provided:


                        - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                        - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                        - IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.


                        The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.

                        A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.

                        The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.

                        The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.

                        The volume will be mounted read-only (ro) and non-executable files (noexec).

                        Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33.

                        The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.'
                      properties:
                        pullPolicy:
                          description: 'Policy for pulling OCI objects. Possible values are:

                            Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.

                            Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn''t present.

                            IfNotPresent: the kubelet pulls if the reference isn''t already present on disk. Container creation will fail if the reference isn''t present and the pull fails.

                            Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.'
                          type: string
                        reference:
                          description: 'Required: Image or artifact reference to be used.

                            Behaves in the same way as pod.spec.containers[*].image.

                            Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.

                            More info: https://kubernetes.io/docs/concepts/containers/images

                            This field is optional to allow higher level config management to default or override

                            container images in workload controllers like Deployments and StatefulSets.'
                          type: string
                      type: object
                    iscsi:
                      description: 'iscsi represents an ISCSI Disk resource that is attached to a

                        kubelet''s host machine and then exposed to the pod.

                        More info: https://examples.k8s.io/volumes/iscsi/README.md'
                      properties:
                        chapAuthDiscovery:
                          description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
                          type: boolean
                        chapAuthSession:
                          description: chapAuthSession defines whether support iSCSI Session CHAP authentication
                          type: boolean
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi'
                          type: string
                        initiatorName:
                          description: 'initiatorName is the custom iSCSI Initiator Name.

                            If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface

                            <target portal>:<volume name> will be created for the connection.'
                          type: string
                        iqn:
                          description: iqn is the target iSCSI Qualified Name.
                          type: string
                        iscsiInterface:
                          default: default
                          description: 'iscsiInterface is the interface Name that uses an iSCSI transport.

                            Defaults to ''default'' (tcp).'
                          type: string
                        lun:
                          description: lun represents iSCSI Target Lun number.
                          format: int32
                          type: integer
                        portals:
                          description: 'portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port

                            is other than default (typically TCP ports 860 and 3260).'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.'
                          type: boolean
                        secretRef:
                          description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        targetPortal:
                          description: 'targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port

                            is other than default (typically TCP ports 860 and 3260).'
                          type: string
                      required:
                      - iqn
                      - lun
                      - targetPortal
                      type: object
                    name:
                      description: 'name of the volume.

                        Must be a DNS_LABEL and unique within the pod.

                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                    nfs:
                      description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                      properties:
                        path:
                          description: 'path that is exported by the NFS server.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the NFS export to be mounted with read-only permissions.

                            Defaults to false.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: boolean
                        server:
                          description: 'server is the hostname or IP address of the NFS server.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
                          type: string
                      required:
                      - path
                      - server
                      type: object
                    persistentVolumeClaim:
                      description: 'persistentVolumeClaimVolumeSource represents a reference to a

                        PersistentVolumeClaim in the same namespace.

                        More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                      properties:
                        claimName:
                          description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.

                            More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
                          type: string
                        readOnly:
                          description: 'readOnly Will force the ReadOnly setting in VolumeMounts.

                            Default false.'
                          type: boolean
                      required:
                      - claimName
                      type: object
                    photonPersistentDisk:
                      description: 'photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.

                        Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        pdID:
                          description: pdID is the ID that identifies Photon Controller persistent disk
                          type: string
                      required:
                      - pdID
                      type: object
                    portworxVolume:
                      description: 'portworxVolume represents a portworx volume attached and mounted on kubelets host machine.

                        Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type

                        are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate

                        is on.'
                      properties:
                        fsType:
                          description: 'fSType represents the filesystem type to mount

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        volumeID:
                          description: volumeID uniquely identifies a Portworx volume
                          type: string
                      required:
                      - volumeID
                      type: object
                    projected:
                      description: projected items for all in one resources secrets, configmaps, and downward API
                      properties:
                        defaultMode:
                          description: 'defaultMode are the mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        sources:
                          description: 'sources is the list of volume projections. Each entry in this list

                            handles one source.'
                          items:
                            description: 'Projection that may be projected along with other supported volume types.

                              Exactly one of these fields must be set.'
                            properties:
                              clusterTrustBundle:
                                description: 'ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field

                                  of ClusterTrustBundle objects in an auto-updating file.


                                  Alpha, gated by the ClusterTrustBundleProjection feature gate.


                                  ClusterTrustBundle objects can either be selected by name, or by the

                                  combination of signer name and a label selector.


                                  Kubelet performs aggressive normalization of the PEM contents written

                                  into the pod filesystem.  Esoteric PEM features such as inter-block

                                  comments and block headers are stripped.  Certificates are deduplicated.

                                  The ordering of certificates within the file is arbitrary, and Kubelet

                                  may change the order over time.'
                                properties:
                                  labelSelector:
                                    description: 'Select all ClusterTrustBundles that match this label selector.  Only has

                                      effect if signerName is set.  Mutually-exclusive with name.  If unset,

                                      interpreted as "match nothing".  If set but empty, interpreted as "match

                                      everything".'
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                                        items:
                                          description: 'A label selector requirement is a selector that contains values, a key, and an operator that

                                            relates the key and values.'
                                          properties:
                                            key:
                                              description: key is the label key that the selector applies to.
                                              type: string
                                            operator:
                                              description: 'operator represents a key''s relationship to a set of values.

                                                Valid operators are In, NotIn, Exists and DoesNotExist.'
                                              type: string
                                            values:
                                              description: 'values is an array of string values. If the operator is In or NotIn,

                                                the values array must be non-empty. If the operator is Exists or DoesNotExist,

                                                the values array must be empty. This array is replaced during a strategic

                                                merge patch.'
                                              items:
                                                type: string
                                              type: array
                                              x-kubernetes-list-type: atomic
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                        x-kubernetes-list-type: atomic
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: 'matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels

                                          map is equivalent to an element of matchExpressions, whose key field is "key", the

                                          operator is "In", and the values array contains only "value". The requirements are ANDed.'
                                        type: object
                                    type: object
                                    x-kubernetes-map-type: atomic
                                  name:
                                    description: 'Select a single ClusterTrustBundle by object name.  Mutually-exclusive

                                      with signerName and labelSelector.'
                                    type: string
                                  optional:
                                    description: 'If true, don''t block pod startup if the referenced ClusterTrustBundle(s)

                                      aren''t available.  If using name, then the named ClusterTrustBundle is

                                      allowed not to exist.  If using signerName, then the combination of

                                      signerName and labelSelector is allowed to match zero

                                      ClusterTrustBundles.'
                                    type: boolean
                                  path:
                                    description: Relative path from the volume root to write the bundle.
                                    type: string
                                  signerName:
                                    description: 'Select all ClusterTrustBundles that match this signer name.

                                      Mutually-exclusive with name.  The contents of all selected

                                      ClusterTrustBundles will be unified and deduplicated.'
                                    type: string
                                required:
                                - path
                                type: object
                              configMap:
                                description: configMap information about the configMap data to project
                                properties:
                                  items:
                                    description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                      ConfigMap will be projected into the volume as a file whose name is the

                                      key and content is the value. If specified, the listed keys will be

                                      projected into the specified paths, and unlisted keys will not be

                                      present. If a key is specified which is not present in the ConfigMap,

                                      the volume setup will error unless it is marked optional. Paths must be

                                      relative and may not contain the ''..'' path or start with ''..''.'
                                    items:
                                      description: Maps a string key to a path within a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file.

                                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'path is the relative path of the file to map the key to.

                                            May not be an absolute path.

                                            May not contain the path element ''..''.

                                            May not start with the string ''..''.'
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: optional specify whether the ConfigMap or its keys must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              downwardAPI:
                                description: downwardAPI information about the downwardAPI data to project
                                properties:
                                  items:
                                    description: Items is a list of DownwardAPIVolume file
                                    items:
                                      description: DownwardAPIVolumeFile represents information to create the file containing the pod field
                                      properties:
                                        fieldRef:
                                          description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.'
                                          properties:
                                            apiVersion:
                                              description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
                                              type: string
                                            fieldPath:
                                              description: Path of the field to select in the specified API version.
                                              type: string
                                          required:
                                          - fieldPath
                                          type: object
                                          x-kubernetes-map-type: atomic
                                        mode:
                                          description: 'Optional: mode bits used to set permissions on this file, must be an octal value

                                            between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
                                          type: string
                                        resourceFieldRef:
                                          description: 'Selects a resource of the container: only resources limits and requests

                                            (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
                                          properties:
                                            containerName:
                                              description: 'Container name: required for volumes, optional for env vars'
                                              type: string
                                            divisor:
                                              anyOf:
                                              - type: integer
                                              - type: string
                                              description: Specifies the output format of the exposed resources, defaults to "1"
                                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                              x-kubernetes-int-or-string: true
                                            resource:
                                              description: 'Required: resource to select'
                                              type: string
                                          required:
                                          - resource
                                          type: object
                                          x-kubernetes-map-type: atomic
                                      required:
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                type: object
                              secret:
                                description: secret information about the secret data to project
                                properties:
                                  items:
                                    description: 'items if unspecified, each key-value pair in the Data field of the referenced

                                      Secret will be projected into the volume as a file whose name is the

                                      key and content is the value. If specified, the listed keys will be

                                      projected into the specified paths, and unlisted keys will not be

                                      present. If a key is specified which is not present in the Secret,

                                      the volume setup will error unless it is marked optional. Paths must be

                                      relative and may not contain the ''..'' path or start with ''..''.'
                                    items:
                                      description: Maps a string key to a path within a volume.
                                      properties:
                                        key:
                                          description: key is the key to project.
                                          type: string
                                        mode:
                                          description: 'mode is Optional: mode bits used to set permissions on this file.

                                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                            YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                            If not specified, the volume defaultMode will be used.

                                            This might be in conflict with other options that affect the file

                                            mode, like fsGroup, and the result can be other mode bits set.'
                                          format: int32
                                          type: integer
                                        path:
                                          description: 'path is the relative path of the file to map the key to.

                                            May not be an absolute path.

                                            May not contain the path element ''..''.

                                            May not start with the string ''..''.'
                                          type: string
                                      required:
                                      - key
                                      - path
                                      type: object
                                    type: array
                                    x-kubernetes-list-type: atomic
                                  name:
                                    default: ''
                                    description: 'Name of the referent.

                                      This field is effectively required, but due to backwards compatibility is

                                      allowed to be empty. Instances of this type with an empty value here are

                                      almost certainly wrong.

                                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  optional:
                                    description: optional field specify whether the Secret or its key must be defined
                                    type: boolean
                                type: object
                                x-kubernetes-map-type: atomic
                              serviceAccountToken:
                                description: serviceAccountToken is information about the serviceAccountToken data to project
                                properties:
                                  audience:
                                    description: 'audience is the intended audience of the token. A recipient of a token

                                      must identify itself with an identifier specified in the audience of the

                                      token, and otherwise should reject the token. The audience defaults to the

                                      identifier of the apiserver.'
                                    type: string
                                  expirationSeconds:
                                    description: 'expirationSeconds is the requested duration of validity of the service

                                      account token. As the token approaches expiration, the kubelet volume

                                      plugin will proactively rotate the service account token. The kubelet will

                                      start trying to rotate the token if the token is older than 80 percent of

                                      its time to live or if the token is older than 24 hours.Defaults to 1 hour

                                      and must be at least 10 minutes.'
                                    format: int64
                                    type: integer
                                  path:
                                    description: 'path is the path relative to the mount point of the file to project the

                                      token into.'
                                    type: string
                                required:
                                - path
                                type: object
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                      type: object
                    quobyte:
                      description: 'quobyte represents a Quobyte mount on the host that shares a pod''s lifetime.

                        Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.'
                      properties:
                        group:
                          description: 'group to map volume access to

                            Default is no group'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the Quobyte volume to be mounted with read-only permissions.

                            Defaults to false.'
                          type: boolean
                        registry:
                          description: 'registry represents a single or multiple Quobyte Registry services

                            specified as a string as host:port pair (multiple entries are separated with commas)

                            which acts as the central registry for volumes'
                          type: string
                        tenant:
                          description: 'tenant owning the given Quobyte volume in the Backend

                            Used with dynamically provisioned Quobyte volumes, value is set by the plugin'
                          type: string
                        user:
                          description: 'user to map volume access to

                            Defaults to serivceaccount user'
                          type: string
                        volume:
                          description: volume is a string that references an already created Quobyte volume by name.
                          type: string
                      required:
                      - registry
                      - volume
                      type: object
                    rbd:
                      description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime.

                        Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.

                        More info: https://examples.k8s.io/volumes/rbd/README.md'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type of the volume that you want to mount.

                            Tip: Ensure that the filesystem type is supported by the host operating system.

                            Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd'
                          type: string
                        image:
                          description: 'image is the rados image name.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        keyring:
                          default: /etc/ceph/keyring
                          description: 'keyring is the path to key ring for RBDUser.

                            Default is /etc/ceph/keyring.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        monitors:
                          description: 'monitors is a collection of Ceph monitors.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          items:
                            type: string
                          type: array
                          x-kubernetes-list-type: atomic
                        pool:
                          default: rbd
                          description: 'pool is the rados pool name.

                            Default is rbd.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                        readOnly:
                          description: 'readOnly here will force the ReadOnly setting in VolumeMounts.

                            Defaults to false.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: boolean
                        secretRef:
                          description: 'secretRef is name of the authentication secret for RBDUser. If provided

                            overrides keyring.

                            Default is nil.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        user:
                          default: admin
                          description: 'user is the rados user name.

                            Default is admin.

                            More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
                          type: string
                      required:
                      - image
                      - monitors
                      type: object
                    scaleIO:
                      description: 'scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

                        Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.'
                      properties:
                        fsType:
                          default: xfs
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs".

                            Default is "xfs".'
                          type: string
                        gateway:
                          description: gateway is the host address of the ScaleIO API Gateway.
                          type: string
                        protectionDomain:
                          description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
                          type: string
                        readOnly:
                          description: 'readOnly Defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef references to the secret for ScaleIO user and other

                            sensitive information. If this is not provided, Login operation will fail.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        sslEnabled:
                          description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
                          type: boolean
                        storageMode:
                          default: ThinProvisioned
                          description: 'storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.

                            Default is ThinProvisioned.'
                          type: string
                        storagePool:
                          description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
                          type: string
                        system:
                          description: system is the name of the storage system as configured in ScaleIO.
                          type: string
                        volumeName:
                          description: 'volumeName is the name of a volume already created in the ScaleIO system

                            that is associated with this volume source.'
                          type: string
                      required:
                      - gateway
                      - secretRef
                      - system
                      type: object
                    secret:
                      description: 'secret represents a secret that should populate this volume.

                        More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                      properties:
                        defaultMode:
                          description: 'defaultMode is Optional: mode bits used to set permissions on created files by default.

                            Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                            YAML accepts both octal and decimal values, JSON requires decimal values

                            for mode bits. Defaults to 0644.

                            Directories within the path are not affected by this setting.

                            This might be in conflict with other options that affect the file

                            mode, like fsGroup, and the result can be other mode bits set.'
                          format: int32
                          type: integer
                        items:
                          description: 'items If unspecified, each key-value pair in the Data field of the referenced

                            Secret will be projected into the volume as a file whose name is the

                            key and content is the value. If specified, the listed keys will be

                            projected into the specified paths, and unlisted keys will not be

                            present. If a key is specified which is not present in the Secret,

                            the volume setup will error unless it is marked optional. Paths must be

                            relative and may not contain the ''..'' path or start with ''..''.'
                          items:
                            description: Maps a string key to a path within a volume.
                            properties:
                              key:
                                description: key is the key to project.
                                type: string
                              mode:
                                description: 'mode is Optional: mode bits used to set permissions on this file.

                                  Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.

                                  YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.

                                  If not specified, the volume defaultMode will be used.

                                  This might be in conflict with other options that affect the file

                                  mode, like fsGroup, and the result can be other mode bits set.'
                                format: int32
                                type: integer
                              path:
                                description: 'path is the relative path of the file to map the key to.

                                  May not be an absolute path.

                                  May not contain the path element ''..''.

                                  May not start with the string ''..''.'
                                type: string
                            required:
                            - key
                            - path
                            type: object
                          type: array
                          x-kubernetes-list-type: atomic
                        optional:
                          description: optional field specify whether the Secret or its keys must be defined
                          type: boolean
                        secretName:
                          description: 'secretName is the name of the secret in the pod''s namespace to use.

                            More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
                          type: string
                      type: object
                    storageos:
                      description: 'storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

                        Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.'
                      properties:
                        fsType:
                          description: 'fsType is the filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        readOnly:
                          description: 'readOnly defaults to false (read/write). ReadOnly here will force

                            the ReadOnly setting in VolumeMounts.'
                          type: boolean
                        secretRef:
                          description: 'secretRef specifies the secret to use for obtaining the StorageOS API

                            credentials.  If not specified, default values will be attempted.'
                          properties:
                            name:
                              default: ''
                              description: 'Name of the referent.

                                This field is effectively required, but due to backwards compatibility is

                                allowed to be empty. Instances of this type with an empty value here are

                                almost certainly wrong.

                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                              type: string
                          type: object
                          x-kubernetes-map-type: atomic
                        volumeName:
                          description: 'volumeName is the human-readable name of the StorageOS volume.  Volume

                            names are only unique within a namespace.'
                          type: string
                        volumeNamespace:
                          description: 'volumeNamespace specifies the scope of the volume within StorageOS.  If no

                            namespace is specified then the Pod''s namespace will be used.  This allows the

                            Kubernetes name scoping to be mirrored within StorageOS for tighter integration.

                            Set VolumeName to any name to override the default behaviour.

                            Set to "default" if you are not using namespaces within StorageOS.

                            Namespaces that do not pre-exist within StorageOS will be created.'
                          type: string
                      type: object
                    vsphereVolume:
                      description: 'vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.

                        Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type

                        are redirected to the csi.vsphere.vmware.com CSI driver.'
                      properties:
                        fsType:
                          description: 'fsType is filesystem type to mount.

                            Must be a filesystem type supported by the host operating system.

                            Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.'
                          type: string
                        storagePolicyID:
                          description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
                          type: string
                        storagePolicyName:
                          description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
                          type: string
                        volumePath:
                          description: volumePath is the path that identifies vSphere volume vmdk
                          type: string
                      required:
                      - volumePath
                      type: object
                  required:
                  - name
                  type: object
                type: array
              workflowMetadata:
                description: WorkflowMetadata contains some metadata of the workflow to refer to
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    type: object
                  labelsFrom:
                    additionalProperties:
                      properties:
                        expression:
                          type: string
                      required:
                      - expression
                      type: object
                    type: object
                type: object
              workflowTemplateRef:
                description: WorkflowTemplateRef holds a reference to a WorkflowTemplate for execution
                properties:
                  clusterScope:
                    description: ClusterScope indicates the referred template is cluster scoped (i.e. a ClusterWorkflowTemplate).
                    type: boolean
                  name:
                    description: Name is the resource name of the workflow template.
                    type: string
                type: object
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true
